asdf-vm: init at 0.8.1

c4605 892fa793 b2f86e66

+86
+85
pkgs/tools/misc/asdf-vm/default.nix
··· 1 + { stdenv, lib, fetchFromGitHub, makeWrapper, installShellFiles, bash, coreutils, curl, git, writeScript }: 2 + 3 + let 4 + asdfReshimFile = writeScript "asdf-reshim" '' 5 + #!/usr/bin/env bash 6 + 7 + # asdf-vm create "shim" file like this: 8 + # 9 + # exec $ASDF_DIR/bin/asdf exec "node" "$@" 10 + # 11 + # So we should reshim all installed versions every time shell initialized, 12 + # because $out always change 13 + 14 + asdfDir="''${ASDF_DIR:-$HOME/.asdf}" 15 + asdfDataDir="''${ASDF_DATA_DIR:-$HOME/.asdf}" 16 + 17 + prevAsdfDirFilePath="$asdfDataDir/.nix-prev-asdf-dir-path" 18 + 19 + if [ -r "$prevAsdfDirFilePath" ]; then 20 + prevAsdfDir="$(cat "$prevAsdfDirFilePath")" 21 + else 22 + prevAsdfDir="" 23 + fi 24 + 25 + if [ "$prevAsdfDir" != "$asdfDir" ]; then 26 + rm -rf "$asdfDataDir"/shims 27 + "$asdfDir"/bin/asdf reshim 28 + echo "$asdfDir" > "$prevAsdfDirFilePath" 29 + fi 30 + ''; 31 + 32 + asdfPrepareFile = writeScript "asdf-prepare" '' 33 + ASDF_DIR="@asdfDir@" 34 + 35 + source "$ASDF_DIR/asdf.sh" 36 + ${asdfReshimFile} 37 + ''; 38 + in stdenv.mkDerivation rec { 39 + pname = "asdf-vm"; 40 + version = "0.8.1"; 41 + 42 + src = fetchFromGitHub { 43 + owner = "asdf-vm"; 44 + repo = "asdf"; 45 + rev = "v${version}"; 46 + sha256 = "07lh5k1krzm7fbkv0jlwbzz5ycn2jg7s12dnqwmy82qqic0sl6fl"; 47 + }; 48 + 49 + nativeBuildInputs = [ 50 + makeWrapper 51 + installShellFiles 52 + ]; 53 + 54 + buildInputs = [ 55 + bash 56 + curl 57 + git 58 + ]; 59 + 60 + installPhase = '' 61 + mkdir -p $out/share/asdf-vm 62 + cp -r . $out/share/asdf-vm 63 + 64 + mkdir -p $out/etc/profile.d 65 + substitute ${asdfPrepareFile} $out/etc/profile.d/asdf-prepare.sh \ 66 + --replace "@asdfDir@" "$out/share/asdf-vm" 67 + 68 + mkdir -p $out/bin 69 + makeWrapper $out/share/asdf-vm/bin/asdf $out/bin/asdf \ 70 + --set ASDF_DIR $out/share/asdf-vm 71 + 72 + installShellCompletion --cmd asdf \ 73 + --zsh completions/_asdf \ 74 + --fish completions/asdf.fish \ 75 + --bash completions/asdf.bash 76 + ''; 77 + 78 + meta = with lib; { 79 + description = "Extendable version manager with support for Ruby, Node.js, Erlang & more"; 80 + homepage = "https://asdf-vm.com/"; 81 + license = licenses.mit; 82 + maintainers = [ maintainers.c4605 ]; 83 + platforms = platforms.unix; 84 + }; 85 + }
+1
pkgs/top-level/all-packages.nix
··· 12593 12593 12594 12594 xidel = callPackage ../tools/text/xidel { }; 12595 12595 12596 + asdf-vm = callPackage ../tools/misc/asdf-vm { }; 12596 12597 12597 12598 ### DEVELOPMENT / TOOLS 12598 12599