69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| set -e
 | |
| 
 | |
| RED='\033[0;31m'
 | |
| GREEN='\033[0;32m'
 | |
| NC='\033[0m'
 | |
| 
 | |
| username=${USER}
 | |
| export SSH_DIR=/Users/${username}/.ssh
 | |
| 
 | |
| handle_no_usb() {
 | |
|   echo -e ${RED}No USB drive found or mounted.${NC}"
 | |
|   echo -e ${GREEN}If you have not yet set up your keys, run the script to generate new SSH keys.${NC}"
 | |
|   exit 1
 | |
| }
 | |
| 
 | |
| mount_usb() {
 | |
|   MOUNT_PATH=""
 | |
|   for dev in $(diskutil list | grep -o 'disk[0-9]'); do
 | |
|     MOUNT_PATH="$(diskutil info /dev/${dev} | grep \"Mount Point\" | awk -F: '{print $2}' | xargs)"
 | |
|     if [ -n "${MOUNT_PATH}" ]; then
 | |
|       echo -e "${GREEN}USB drive found at ${MOUNT_PATH}.${NC}"
 | |
|       break
 | |
|     fi
 | |
|   done
 | |
| 
 | |
|   if [ -z "${MOUNT_PATH}" ]; then
 | |
|     echo -e "${RED}No USB drive found.${NC}"
 | |
|   fi
 | |
| }
 | |
| 
 | |
| copy_keys() {
 | |
|   if [ -n "${MOUNT_PATH}" ]; then
 | |
|     cp "${MOUNT_PATH}/id_ed25519_agenix.pub" ${SSH_DIR}
 | |
|     cp "${MOUNT_PATH}/id_ed25519_agenix" ${SSH_DIR}
 | |
|     chmod 600 ${SSH_DIR}/id_ed25519_{agenix,agenix.pub}
 | |
|   else
 | |
|     echo -e "${RED}No USB drive found. Aborting.${NC}"
 | |
|     exit 1
 | |
|   fi
 | |
| }
 | |
| 
 | |
| setup_ssh_directory() {
 | |
|   mkdir -p ${SSH_DIR}
 | |
| }
 | |
| 
 | |
| set_keys() {
 | |
|   cp ${MOUNT_PATH}/id_ed25519_github.pub ${SSH_DIR}/id_ed25519.pub
 | |
|   cp ${MOUNT_PATH}/id_ed25519_github ${SSH_DIR}/id_ed25519
 | |
|   chmod 600 ${SSH_DIR}/id_ed25519
 | |
|   chmod 644 ${SSH_DIR}/id_ed25519.pub
 | |
| }
 | |
| 
 | |
| change_ownership() {
 | |
|   chown ${username}:staff ${SSH_DIR}/id_ed25519{,.pub}
 | |
|   chown ${username}:staff ${SSH_DIR}/id_ed25519_{agenix,agenix.pub}
 | |
| }
 | |
| 
 | |
| setup_ssh_directory
 | |
| mount_usb
 | |
| 
 | |
| if [ -z "${MOUNT_PATH}" ]; then
 | |
|   handle_no_usb
 | |
| else
 | |
|   copy_keys
 | |
|   set_keys
 | |
|   change_ownership
 | |
| fi
 |