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
 | |
| 
 | |
| # TODO: we might not need to copy the key over here anymore?
 | |
| 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
 |