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" rm -rf "$nixPkgsCache" and mkdir -p "$nixPkgsCache" and git -C "$nixPkgsCache" init and git -C "$nixPkgsCache" remote add origin https://github.com/NixOS/nixpkgs.git and git -C "$nixPkgsCache" fetch --depth=1 origin "$nixPkgsVersion" and git -C "$nixPkgsCache" reset --hard FETCH_HEAD end end function installNixPkgs -V config -V nixPkgsDir source "$config" if ! __isNixModule "$nixPkgsDir" if ! __isNixModule "$nixPkgsCache" downloadNixPkgs end sudo rm -rf "$nixPkgsDir" sudo mkdir -p (dirname "$nixPkgsDir") sudo cp -r "$nixPkgsCache" "$nixPkgsDir" end end function uninstallNixPkgs -V nixPkgsDir sudo rm -rf (dirname "$nixPkgsDir") end end