@Growpotkin I’m using home-manager and adding the derivation to home.packages
. I expected whatever’s in $out/bin
to be symlinked to ~/.nix-profile/bin
.
@NobbZ I changed the pname of the derivation to make sure that a previous version is not getting referenced.
In case it helps:
❯ nix --version
nix (Nix) 2.8.1
Here are the full .nix
files that I used.
In this case, $out/bin/vue-language-server
doesn’t get symlinked to ~/.nix-profile/bin
:
{ stdenv, nodejs-16_x, yarn }:
stdenv.mkDerivation rec {
pname = "volar-vue-language-server";
version = "0.38.8";
src = fetchTarball {
url = "https://registry.npmjs.org/@volar/vue-language-server/-/vue-language-server-${version}.tgz";
sha256 = "sha256:1m8k138rq5lz1hbi0zbhd0s9zn1m5idhwpwldpg2d5nndrwc6pcn";
};
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-XB9zJ1yt/E7ap4DzPLDY3bjWe43o829V7Gn9KIv5EQY=";
buildInputs = [
nodejs-16_x
yarn
];
buildPhase = ''
HOME=./ yarn
rm -rf .cache .yarnrc
'';
installPhase = ''
mkdir -p $out
cp -r node_modules bin out $out/
mv $out/bin/vue-language-server{.js,}
chmod +x $out/bin/vue-language-server
'';
}
In this case, $out/bin/volar-test
does get symlinked:
{ stdenv, nodejs-16_x, yarn }:
stdenv.mkDerivation rec {
pname = "volar-vue-language-server";
version = "0.38.8";
src = fetchTarball {
url = "https://registry.npmjs.org/@volar/vue-language-server/-/vue-language-server-${version}.tgz";
sha256 = "sha256:1m8k138rq5lz1hbi0zbhd0s9zn1m5idhwpwldpg2d5nndrwc6pcn";
};
# outputHashMode = "recursive";
# outputHashAlgo = "sha256";
# outputHash = "sha256-4vkgFB8KHHzU56nxJGvoGhUO/3hWmWLbFNsKJd/t+k0=";
buildInputs = [
nodejs-16_x
yarn
];
buildPhase = ''
# HOME=./ yarn
# rm -rf .cache .yarnrc
'';
installPhase = ''
# mkdir -p $out
#
# cp -r node_modules bin out $out/
# mv $out/bin/vue-language-server{.js,}
# chmod +x $out/bin/vue-language-server
mkdir -p $out/bin
echo "#!/bin/bash" >> $out/bin/volar-test
echo "echo Hello" >> $out/bin/volar-test
chmod +x $out/bin/volar-test
'';
}