Merge pull request #49477 from obsidiansystems/haskell-shell-completions
haskell-lib: Factor out shell completion scripts helper
This commit is contained in:
@@ -354,4 +354,19 @@ rec {
|
||||
|
||||
in
|
||||
builtins.listToAttrs (map toKeyVal haskellPaths);
|
||||
|
||||
# Modify a Haskell package to add completion scripts for the given executable
|
||||
# produced by it. These completion scripts will be picked up automatically if
|
||||
# the resulting derivation is installed, e.g. by `nix-env -i`.
|
||||
addOptparseApplicativeCompletionScripts = exeName: pkg: overrideCabal pkg (drv: {
|
||||
postInstall = (drv.postInstall or "") + ''
|
||||
bashCompDir="$out/share/bash-completion/completions"
|
||||
zshCompDir="$out/share/zsh/vendor-completions"
|
||||
fishCompDir="$out/share/fish/vendor_completions.d"
|
||||
mkdir -p "$bashCompDir" "$zshCompDir" "$fishCompDir"
|
||||
"$out/bin/${exeName}" --bash-completion-script "$out/bin/${exeName}" >"$bashCompDir/${exeName}"
|
||||
"$out/bin/${exeName}" --zsh-completion-script "$out/bin/${exeName}" >"$zshCompDir/_${exeName}"
|
||||
"$out/bin/${exeName}" --fish-completion-script "$out/bin/${exeName}" >"$fishCompDir/${exeName}.fish"
|
||||
'';
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user