Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 65 lines 2.2 kB view raw
1{ 2 stdenvNoCC, 3 lib, 4 babashka-unwrapped, 5 callPackage, 6 makeWrapper, 7 installShellFiles, 8 rlwrap, 9 clojureToolsBabashka ? callPackage ./clojure-tools.nix { }, 10 jdkBabashka ? clojureToolsBabashka.jdk, 11 12 # rlwrap is a small utility to allow the editing of keyboard input, see 13 # https://book.babashka.org/#_repl 14 # 15 # NOTE In some cases, rlwrap prints some extra empty lines. That behavior can 16 # break some babashka scripts. For this reason, it is disabled by default. See: 17 # https://github.com/NixOS/nixpkgs/issues/246839 18 # https://github.com/NixOS/nixpkgs/pull/248207 19 withRlwrap ? false, 20}: 21stdenvNoCC.mkDerivation (finalAttrs: { 22 pname = "babashka"; 23 inherit (babashka-unwrapped) version meta doInstallCheck; 24 25 dontUnpack = true; 26 dontBuild = true; 27 28 nativeBuildInputs = [ 29 makeWrapper 30 installShellFiles 31 ]; 32 33 installPhase = 34 let 35 unwrapped-bin = "${babashka-unwrapped}/bin/bb"; 36 in 37 '' 38 mkdir -p $out/clojure_tools 39 ln -s -t $out/clojure_tools ${clojureToolsBabashka}/*.edn 40 ln -s -t $out/clojure_tools ${clojureToolsBabashka}/libexec/* 41 42 makeWrapper "${babashka-unwrapped}/bin/bb" "$out/bin/bb" \ 43 --inherit-argv0 \ 44 --set-default DEPS_CLJ_TOOLS_DIR $out/clojure_tools \ 45 --set-default JAVA_HOME ${jdkBabashka} 46 47 installShellCompletion --cmd bb --bash ${babashka-unwrapped}/share/bash-completion/completions/bb.bash 48 installShellCompletion --cmd bb --zsh ${babashka-unwrapped}/share/zsh/site-functions/_bb 49 installShellCompletion --cmd bb --fish ${babashka-unwrapped}/share/fish/vendor_completions.d/bb.fish 50 '' 51 + lib.optionalString withRlwrap '' 52 substituteInPlace $out/bin/bb \ 53 --replace '"${unwrapped-bin}"' '"${rlwrap}/bin/rlwrap" "${unwrapped-bin}"' 54 ''; 55 56 installCheckPhase = '' 57 ${babashka-unwrapped.installCheckPhase} 58 # Needed for Darwin compat, see https://github.com/borkdude/deps.clj/issues/114 59 export CLJ_CONFIG="$TMP/.clojure" 60 $out/bin/bb clojure --version | grep -wF '${clojureToolsBabashka.version}' 61 ''; 62 63 passthru.unwrapped = babashka-unwrapped; 64 passthru.clojure-tools = clojureToolsBabashka; 65})