Files
radicle-explorer/scripts/update-flake
T

49 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
set -eu
usage() {
printf \
'Update flake.
USAGE:
update-flake [-h]
OPTIONS:
-h --help\tPrint this help.\n'
}
while [ $# -ne 0 ]; do
case $1 in
--help | -h)
usage >&2
exit
;;
esac
done
# Some root detection guess work...
root=$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")
if [ ! -e "$root/scripts/update-flake" ]; then
root=$(
cd ..
pwd
)
fi
if [ -e "$root/flake.nix" ]; then
# If running on a nix-enabled system, also update npmDepsHash.
if type nix >/dev/null 2>&1; then
npmDepsHash=$(nix --experimental-features 'nix-command flakes' \
run --inputs-from "$root" nixpkgs#prefetch-npm-deps \
-- "$root/package-lock.json")
sed -E -e '/# npmDepsHash :/s#(hash[ ]*=[ ]*").*(".*$)#\1'"$npmDepsHash"'\2#' "$root/flake.nix" >$root/flake.nix.tmp
mv "$root/flake.nix.tmp" "$root/flake.nix"
nix --experimental-features 'nix-command flakes' flake update --flake git+file://"$root"
else
printf >&2 'Node dependencies may be out of date!
Re-run on a nix-enabled system to update npmDepsHash.\n'
fi
fi