mirror of
https://github.com/justinwoo/easy-dhall-nix.git
synced 2024-11-23 03:29:42 +01:00
feat(dhall-*): add zsh and fish completions
Uses the new optparse-applicative support for fish and zsh, and the nixpkgs `installShellCompletion` hook to automatically put the completions in the right directories.
This commit is contained in:
parent
5b7632cbc4
commit
3ec7f3f0de
2 changed files with 28 additions and 6 deletions
10
build.nix
10
build.nix
|
@ -19,12 +19,18 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
sha256 = release.${"${attrName}-linux"}.hash;
|
sha256 = release.${"${attrName}-linux"}.hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.installShellFiles ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
binPath="$out/bin/${binName}"
|
binPath="$out/bin/${binName}"
|
||||||
install -D -m555 -T ${binName} "$binPath"
|
install -D -m555 -T ${binName} "$binPath"
|
||||||
|
|
||||||
mkdir -p $out/etc/bash_completion.d/
|
"$binPath" --bash-completion-script "$binPath" > "${binName}.bash"
|
||||||
"$binPath" --bash-completion-script "$binPath" > "$out/etc/bash_completion.d/${binName}-completion.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"
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
sha256 = release.dhall-json-linux.hash;
|
sha256 = release.dhall-json-linux.hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgs.installShellFiles ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
DHALL_TO_JSON=$out/bin/dhall-to-json
|
DHALL_TO_JSON=$out/bin/dhall-to-json
|
||||||
|
@ -26,9 +28,23 @@ pkgs.stdenv.mkDerivation rec {
|
||||||
install -D -m555 -T dhall-to-yaml $DHALL_TO_YAML
|
install -D -m555 -T dhall-to-yaml $DHALL_TO_YAML
|
||||||
install -D -m555 -T json-to-dhall $JSON_TO_DHALL
|
install -D -m555 -T json-to-dhall $JSON_TO_DHALL
|
||||||
|
|
||||||
mkdir -p $out/etc/bash_completion.d/
|
"$DHALL_TO_JSON" --bash-completion-script "$DHALL_TO_JSON" > "dhall-to-json.bash"
|
||||||
$DHALL_TO_JSON --bash-completion-script $DHALL_TO_JSON > $out/etc/bash_completion.d/dhall-to-json-completion.bash
|
"$DHALL_TO_YAML" --bash-completion-script "$DHALL_TO_YAML" > "dhall-to-yaml.bash"
|
||||||
$DHALL_TO_YAML --bash-completion-script $DHALL_TO_YAML > $out/etc/bash_completion.d/dhall-to-yaml-completion.bash
|
"$JSON_TO_DHALL" --bash-completion-script "$JSON_TO_DHALL" > "json-to-dhall.bash"
|
||||||
$JSON_TO_DHALL --bash-completion-script $JSON_TO_DHALL > $out/etc/bash_completion.d/json-to-dhall-completion.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"
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue