55 lines
1.3 KiB
Bash
Executable file
55 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--target*|-t*)
|
|
if [[ "$1" != *=* ]]; then shift; fi # Value is next arg if no `=`
|
|
target="${1#*=}"
|
|
;;
|
|
--flake*|-f*)
|
|
if [[ "$1" != *=* ]]; then shift; fi
|
|
flake="${1#*=}"
|
|
;;
|
|
--user*|-u*)
|
|
if [[ "$1" != *=* ]]; then shift; fi
|
|
user="${1#*=}"
|
|
;;
|
|
--help|-h)
|
|
echo "--help -h: print this message"
|
|
echo "--target -t: set the target system to install on"
|
|
echo "--flake -f: set the flake to install on the target system"
|
|
echo "--user -u: set the user to install flake as on the target system"
|
|
exit 0
|
|
;;
|
|
*)
|
|
echo "Error: Invalid argument $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -z ${target} ]; then
|
|
echo "target is blank";
|
|
exit 1;
|
|
fi
|
|
|
|
if [ -z ${flake} ]; then
|
|
echo "flake is blank";
|
|
exit 1;
|
|
fi
|
|
|
|
temp=$(mktemp -d)
|
|
# Function to cleanup temporary directory on exit
|
|
cleanup() {
|
|
rm -rf "$temp"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
# copy key file to temp folder to copy over to target
|
|
mkdir -p $temp$SOPS_AGE_KEY_DIRECTORY
|
|
cp -r $SOPS_AGE_KEY_DIRECTORY/* $temp$SOPS_AGE_KEY_DIRECTORY
|
|
|
|
# commit number in this is because the main branch of nixos-anywhere is broken right now
|
|
nixos-anywhere --extra-files $temp --flake ".#$flake" ${user:-nixos}@$target
|