babashka: Install shell completions
This commit is contained in:
parent
a1bd79b94c
commit
808b05db11
@ -0,0 +1,5 @@
|
|||||||
|
_bb_tasks() {
|
||||||
|
COMPREPLY=( $(compgen -W "$(bb tasks |tail -n +3 |cut -f1 -d ' ')" -- ${COMP_WORDS[COMP_CWORD]}) );
|
||||||
|
}
|
||||||
|
# autocomplete filenames as well
|
||||||
|
complete -f -F _bb_tasks bb
|
@ -0,0 +1,9 @@
|
|||||||
|
function __bb_complete_tasks
|
||||||
|
if not test "$__bb_tasks"
|
||||||
|
set -g __bb_tasks (bb tasks |tail -n +3 |cut -f1 -d ' ')
|
||||||
|
end
|
||||||
|
|
||||||
|
printf "%s\n" $__bb_tasks
|
||||||
|
end
|
||||||
|
|
||||||
|
complete -c bb -a "(__bb_complete_tasks)" -d 'tasks'
|
@ -0,0 +1,6 @@
|
|||||||
|
_bb_tasks() {
|
||||||
|
local matches=(`bb tasks |tail -n +3 |cut -f1 -d ' '`)
|
||||||
|
compadd -a matches
|
||||||
|
_files # autocomplete filenames as well
|
||||||
|
}
|
||||||
|
compdef _bb_tasks bb
|
@ -4,6 +4,7 @@
|
|||||||
, removeReferencesTo
|
, removeReferencesTo
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, writeScript
|
, writeScript
|
||||||
|
, installShellFiles
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -20,7 +21,7 @@ let
|
|||||||
|
|
||||||
executable = "bb";
|
executable = "bb";
|
||||||
|
|
||||||
nativeBuildInputs = [ removeReferencesTo ];
|
nativeBuildInputs = [ removeReferencesTo installShellFiles ];
|
||||||
|
|
||||||
extraNativeImageBuildArgs = [
|
extraNativeImageBuildArgs = [
|
||||||
"-H:+ReportExceptionStackTraces"
|
"-H:+ReportExceptionStackTraces"
|
||||||
@ -42,6 +43,9 @@ let
|
|||||||
# graalvm-ce anyway.
|
# graalvm-ce anyway.
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
remove-references-to -t ${graalvmDrv} $out/bin/${executable}
|
remove-references-to -t ${graalvmDrv} $out/bin/${executable}
|
||||||
|
installShellCompletion --cmd bb --bash ${./completions/bb.bash}
|
||||||
|
installShellCompletion --cmd bb --zsh ${./completions/bb.zsh}
|
||||||
|
installShellCompletion --cmd bb --fish ${./completions/bb.fish}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru.updateScript = writeScript "update-babashka" ''
|
passthru.updateScript = writeScript "update-babashka" ''
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
, babashka-unwrapped
|
, babashka-unwrapped
|
||||||
, callPackage
|
, callPackage
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
|
, installShellFiles
|
||||||
, rlwrap
|
, rlwrap
|
||||||
, clojureToolsBabashka ? callPackage ./clojure-tools.nix { }
|
, clojureToolsBabashka ? callPackage ./clojure-tools.nix { }
|
||||||
, jdkBabashka ? clojureToolsBabashka.jdk
|
, jdkBabashka ? clojureToolsBabashka.jdk
|
||||||
@ -23,7 +24,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||||
|
|
||||||
installPhase =
|
installPhase =
|
||||||
let unwrapped-bin = "${babashka-unwrapped}/bin/bb"; in
|
let unwrapped-bin = "${babashka-unwrapped}/bin/bb"; in
|
||||||
@ -37,6 +38,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
|||||||
--set-default DEPS_CLJ_TOOLS_DIR $out/clojure_tools \
|
--set-default DEPS_CLJ_TOOLS_DIR $out/clojure_tools \
|
||||||
--set-default JAVA_HOME ${jdkBabashka}
|
--set-default JAVA_HOME ${jdkBabashka}
|
||||||
|
|
||||||
|
installShellCompletion --cmd bb --bash ${babashka-unwrapped}/share/bash-completion/completions/bb.bash
|
||||||
|
installShellCompletion --cmd bb --zsh ${babashka-unwrapped}/share/fish/vendor_completions.d/bb.fish
|
||||||
|
installShellCompletion --cmd bb --fish ${babashka-unwrapped}/share/zsh/site-functions/_bb
|
||||||
'' +
|
'' +
|
||||||
lib.optionalString withRlwrap ''
|
lib.optionalString withRlwrap ''
|
||||||
substituteInPlace $out/bin/bb \
|
substituteInPlace $out/bin/bb \
|
||||||
|
Loading…
Reference in New Issue
Block a user