Merge pull request #32 from Profpatsch/build-allow-multiple-binaries

Build allow multiple binaries
This commit is contained in:
Profpatsch 2020-08-05 02:28:31 +02:00 committed by GitHub
commit 9095796985
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 33 additions and 61 deletions

View file

@ -1,6 +1,6 @@
{ pkgs, release }: { pkgs, release }:
{ simpleName, binName, attrName }: { simpleName, binNames, attrName }:
let let
release = import ./release.nix; release = import ./release.nix;
@ -23,14 +23,29 @@ pkgs.stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/bin mkdir -p $out/bin
${pkgs.lib.concatMapStringsSep "\n" (binName: ''
binPath="$out/bin/${binName}" binPath="$out/bin/${binName}"
install -D -m555 -T ${binName} "$binPath" install -D -m555 -T "${binName}" "$binPath"
rm "${binName}"
"$binPath" --bash-completion-script "$binPath" > "${binName}.bash" "$binPath" --bash-completion-script "$binPath" > "${binName}.bash"
installShellCompletion --bash "${binName}.bash" installShellCompletion --bash "${binName}.bash"
rm "${binName}.bash"
"$binPath" --zsh-completion-script "$binPath" > "${binName}.zsh" "$binPath" --zsh-completion-script "$binPath" > "${binName}.zsh"
installShellCompletion --zsh "${binName}.zsh" installShellCompletion --zsh "${binName}.zsh"
rm "${binName}.zsh"
"$binPath" --fish-completion-script "$binPath" > "${binName}.fish" "$binPath" --fish-completion-script "$binPath" > "${binName}.fish"
installShellCompletion --fish "${binName}.fish" installShellCompletion --fish "${binName}.fish"
rm "${binName}.fish"
'') binNames}
# check that we didnt forget any files (maybe a new binary was added)
if [ ! -z "$(${pkgs.lr}/bin/lr -1 -t 'depth == 1' .)" ]; then
echo "still some files remaining!" >&2
${pkgs.lr}/bin/lr .
exit 1
fi
''; '';
} }

View file

@ -2,6 +2,6 @@
import ./build.nix { inherit pkgs; release = import ./release.nix; } { import ./build.nix { inherit pkgs; release = import ./release.nix; } {
simpleName = "dhall-bash-simple"; simpleName = "dhall-bash-simple";
binName = "dhall-to-bash"; binNames = [ "dhall-to-bash" ];
attrName = "dhall-bash"; attrName = "dhall-bash";
} }

View file

@ -1,50 +1,7 @@
{ pkgs ? import <nixpkgs> {} }: { pkgs ? import <nixpkgs> {} }:
let import ./build.nix { inherit pkgs; release = import ./release.nix; } {
release = import ./release.nix; simpleName = "dhall-json-simple";
in binNames = [ "dhall-to-json" "dhall-to-yaml" "json-to-dhall" ];
attrName = "dhall-json";
pkgs.stdenv.mkDerivation rec {
name = "dhall-json-simple";
src = if pkgs.stdenv.isDarwin
then pkgs.fetchzip {
url = release.dhall-json-darwin.url;
sha256 = release.dhall-json-darwin.hash;
}
else pkgs.fetchzip {
url = release.dhall-json-linux.url;
sha256 = release.dhall-json-linux.hash;
};
nativeBuildInputs = [ pkgs.installShellFiles ];
installPhase = ''
mkdir -p $out/bin
DHALL_TO_JSON=$out/bin/dhall-to-json
DHALL_TO_YAML=$out/bin/dhall-to-yaml
JSON_TO_DHALL=$out/bin/json-to-dhall
install -D -m555 -T dhall-to-json $DHALL_TO_JSON
install -D -m555 -T dhall-to-yaml $DHALL_TO_YAML
install -D -m555 -T json-to-dhall $JSON_TO_DHALL
"$DHALL_TO_JSON" --bash-completion-script "$DHALL_TO_JSON" > "dhall-to-json.bash"
"$DHALL_TO_YAML" --bash-completion-script "$DHALL_TO_YAML" > "dhall-to-yaml.bash"
"$JSON_TO_DHALL" --bash-completion-script "$JSON_TO_DHALL" > "json-to-dhall.bash"
installShellCompletion --bash "dhall-to-json.bash"
installShellCompletion --bash "dhall-to-yaml.bash"
installShellCompletion --bash "json-to-dhall.bash"
"$DHALL_TO_JSON" --zsh-completion-script "$DHALL_TO_JSON" > "dhall-to-json.zsh"
"$DHALL_TO_YAML" --zsh-completion-script "$DHALL_TO_YAML" > "dhall-to-yaml.zsh"
"$JSON_TO_DHALL" --zsh-completion-script "$JSON_TO_DHALL" > "json-to-dhall.zsh"
installShellCompletion --zsh "dhall-to-json.zsh"
installShellCompletion --zsh "dhall-to-yaml.zsh"
installShellCompletion --zsh "json-to-dhall.zsh"
"$DHALL_TO_JSON" --fish-completion-script "$DHALL_TO_JSON" > "dhall-to-json.fish"
"$DHALL_TO_YAML" --fish-completion-script "$DHALL_TO_YAML" > "dhall-to-yaml.fish"
"$JSON_TO_DHALL" --fish-completion-script "$JSON_TO_DHALL" > "json-to-dhall.fish"
installShellCompletion --fish "dhall-to-json.fish"
installShellCompletion --fish "dhall-to-yaml.fish"
installShellCompletion --fish "json-to-dhall.fish"
'';
} }

View file

@ -2,6 +2,6 @@
import ./build.nix { inherit pkgs; release = import ./release.nix; } { import ./build.nix { inherit pkgs; release = import ./release.nix; } {
simpleName = "dhall-lsp-simple"; simpleName = "dhall-lsp-simple";
binName = "dhall-lsp-server"; binNames = [ "dhall-lsp-server" ];
attrName = "dhall-lsp-server"; attrName = "dhall-lsp-server";
} }

View file

@ -2,6 +2,6 @@
import ./build.nix { inherit pkgs; release = import ./release.nix; } { import ./build.nix { inherit pkgs; release = import ./release.nix; } {
simpleName = "dhall-nix-simple"; simpleName = "dhall-nix-simple";
binName = "dhall-to-nix"; binNames = [ "dhall-to-nix" ];
attrName = "dhall-nix"; attrName = "dhall-nix";
} }

View file

@ -2,6 +2,6 @@
import ./build.nix { inherit pkgs; release = import ./release.nix; } { import ./build.nix { inherit pkgs; release = import ./release.nix; } {
simpleName = "dhall-simple"; simpleName = "dhall-simple";
binName = "dhall"; binNames = [ "dhall" ];
attrName = "dhall"; attrName = "dhall";
} }

View file

@ -2,6 +2,6 @@
import ./build.nix { inherit pkgs; release = import ./release.nix; } { import ./build.nix { inherit pkgs; release = import ./release.nix; } {
simpleName = "dhall-yaml-simple"; simpleName = "dhall-yaml-simple";
binName = "dhall-to-yaml-ng"; binNames = [ "dhall-to-yaml-ng" "yaml-to-dhall" ];
attrName = "dhall-yaml"; attrName = "dhall-yaml";
} }