PortValhalla/scripts/lib/nix.fish

36 lines
1 KiB
Fish

begin
set -l dir (status dirname)
set -l config "$dir/config.fish"
set nixPkgsDir "/nix/var/nix/profiles/per-user/root/channels/nixpkgs"
function __isNixModule -a path
nix-instantiate --eval --expr "{ path }: import path" --argstr path "$path" &>/dev/null
end
function downloadNixPkgs -V config
source "$config"
if ! __isNixModule "$nixPkgsCache"
mkdir -p "$nixPkgsCache"
and git clone https://github.com/NixOS/nixpkgs.git --depth=1 -b "$nixPkgsVersion" "$nixPkgsCache"
and rm -rf "$nixPkgsCache/.git"
end
end
function installNixPkgs -V config -V nixPkgsDir
source "$config"
if ! __isNixModule "$nixPkgsDir"
if ! __isNixModule "$nixPkgsCache"
downloadNixPkgs
end
sudo mkdir -p "$nixPkgsDir"
sudo cp -r "$nixPkgsCache"/* "$nixPkgsDir"
end
end
function uninstallNixPkgs -V nixPkgsDir
sudo rm -rf (dirname "$nixPkgsDir")
end
end