mirror of
https://github.com/justinwoo/easy-dhall-nix.git
synced 2024-11-26 21:19:42 +01:00
Merge pull request #32 from Profpatsch/build-allow-multiple-binaries
Build allow multiple binaries
This commit is contained in:
commit
9095796985
7 changed files with 33 additions and 61 deletions
19
build.nix
19
build.nix
|
@ -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 didn’t 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
|
||||||
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue