From f0270205ee1a4871aba36869969af9595ac68d81 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Tue, 4 Aug 2020 23:04:23 +0200 Subject: [PATCH] feat(build): allow multiple binaries I gave in because I wanted to use yaml-to-dhall, so this implements copying multiple binaries. --- build.nix | 27 +++++++++++++++++---------- dhall-bash-simple.nix | 2 +- dhall-lsp-simple.nix | 2 +- dhall-nix-simple.nix | 2 +- dhall-simple.nix | 2 +- dhall-yaml-simple.nix | 2 +- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/build.nix b/build.nix index a531338..22ea7e8 100644 --- a/build.nix +++ b/build.nix @@ -1,6 +1,6 @@ { pkgs, release }: -{ simpleName, binName, attrName }: +{ simpleName, binNames, attrName }: let release = import ./release.nix; @@ -23,9 +23,22 @@ pkgs.stdenv.mkDerivation rec { installPhase = '' mkdir -p $out/bin - binPath="$out/bin/${binName}" - install -D -m555 -T "${binName}" "$binPath" - rm "${binName}" + + ${pkgs.lib.concatMapStringsSep "\n" (binName: '' + binPath="$out/bin/${binName}" + install -D -m555 -T "${binName}" "$binPath" + rm "${binName}" + + "$binPath" --bash-completion-script "$binPath" > "${binName}.bash" + installShellCompletion --bash "${binName}.bash" + rm "${binName}.bash" + "$binPath" --zsh-completion-script "$binPath" > "${binName}.zsh" + installShellCompletion --zsh "${binName}.zsh" + rm "${binName}.zsh" + "$binPath" --fish-completion-script "$binPath" > "${binName}.fish" + installShellCompletion --fish "${binName}.fish" + rm "${binName}.fish" + '') binNames} # check that we didn’t forget any files (maybe a new binary was added) if [ ! -z "$(${pkgs.lr}/bin/lr -1 -t 'depth == 1' .)" ]; then @@ -34,11 +47,5 @@ pkgs.stdenv.mkDerivation rec { exit 1 fi - "$binPath" --bash-completion-script "$binPath" > "${binName}.bash" - installShellCompletion --bash "${binName}.bash" - "$binPath" --zsh-completion-script "$binPath" > "${binName}.zsh" - installShellCompletion --zsh "${binName}.zsh" - "$binPath" --fish-completion-script "$binPath" > "${binName}.fish" - installShellCompletion --fish "${binName}.fish" ''; } diff --git a/dhall-bash-simple.nix b/dhall-bash-simple.nix index 79cd13e..2704763 100644 --- a/dhall-bash-simple.nix +++ b/dhall-bash-simple.nix @@ -2,6 +2,6 @@ import ./build.nix { inherit pkgs; release = import ./release.nix; } { simpleName = "dhall-bash-simple"; - binName = "dhall-to-bash"; + binNames = [ "dhall-to-bash" ]; attrName = "dhall-bash"; } diff --git a/dhall-lsp-simple.nix b/dhall-lsp-simple.nix index 943ed1c..9c12846 100644 --- a/dhall-lsp-simple.nix +++ b/dhall-lsp-simple.nix @@ -2,6 +2,6 @@ import ./build.nix { inherit pkgs; release = import ./release.nix; } { simpleName = "dhall-lsp-simple"; - binName = "dhall-lsp-server"; + binNames = [ "dhall-lsp-server" ]; attrName = "dhall-lsp-server"; } diff --git a/dhall-nix-simple.nix b/dhall-nix-simple.nix index 5c7f59f..3c3c5c5 100644 --- a/dhall-nix-simple.nix +++ b/dhall-nix-simple.nix @@ -2,6 +2,6 @@ import ./build.nix { inherit pkgs; release = import ./release.nix; } { simpleName = "dhall-nix-simple"; - binName = "dhall-to-nix"; + binNames = [ "dhall-to-nix" ]; attrName = "dhall-nix"; } diff --git a/dhall-simple.nix b/dhall-simple.nix index 3a023ba..f37bef5 100644 --- a/dhall-simple.nix +++ b/dhall-simple.nix @@ -2,6 +2,6 @@ import ./build.nix { inherit pkgs; release = import ./release.nix; } { simpleName = "dhall-simple"; - binName = "dhall"; + binNames = [ "dhall" ]; attrName = "dhall"; } diff --git a/dhall-yaml-simple.nix b/dhall-yaml-simple.nix index 7fe8c33..1c0a8cd 100644 --- a/dhall-yaml-simple.nix +++ b/dhall-yaml-simple.nix @@ -2,6 +2,6 @@ import ./build.nix { inherit pkgs; release = import ./release.nix; } { simpleName = "dhall-yaml-simple"; - binName = "dhall-to-yaml-ng"; + binNames = [ "dhall-to-yaml-ng" "yaml-to-dhall" ]; attrName = "dhall-yaml"; }