nix config
at deck 71 lines 1.8 kB view raw
1#!/usr/bin/env bash 2set -e 3 4unmount_usb() { 5 if mountpoint -q /mnt/usb; then 6 sudo umount /mnt/usb 7 echo -e "\e[0;32mUSB drive unmounted.\e[0m" 8 fi 9} 10 11mount_usb() { 12 if mountpoint -q /mnt/usb; then 13 echo -e "\e[0;32mUSB drive already mounted.\e[0m" 14 else 15 device_found=false 16 for dev in sda sdb sdc sdd sde sdf sdg sdh sdi sdj sdk sdl; do 17 if sudo blkid /dev/$dev | grep -iq 'TYPE="vfat"'; then 18 device_found=true 19 mkdir -p /mnt/usb 20 sudo mount /dev/$dev /mnt/usb && { echo -e "\e[0;32mUSB drive mounted successfully on /dev/$dev.\e[0m"; break; } || echo -e "\e[0;31mFailed to mount /dev/$dev.\e[0m" 21 fi 22 done 23 if [ "$device_found" = false ]; then 24 echo -e "\e[0;31mNo USB devices found.\e[0m" 25 fi 26 fi 27} 28 29setup_ssh_directory() { 30 export SSH_DIR=/root/.ssh 31 mkdir -p $SSH_DIR 32} 33 34check_file_exists() { 35 if [[ ! -f $1 ]]; then 36 echo -e "\e[0;31mError: File $1 does not exist.\e[0m" 37 exit 1 38 fi 39} 40 41copy_keys() { 42 check_file_exists "/mnt/usb/id_ed25519_agenix.pub" 43 check_file_exists "/mnt/usb/id_ed25519_agenix" 44 cp /mnt/usb/id_ed25519_agenix.pub $SSH_DIR 45 cp /mnt/usb/id_ed25519_agenix $SSH_DIR 46 chmod 600 $SSH_DIR/id_ed25519_{agenix,agenix.pub} 47 echo -e "\e[0;32mKeys copied successfully.\e[0m" 48} 49 50set_keys() { 51 check_file_exists "/mnt/usb/id_ed25519_github.pub" 52 check_file_exists "/mnt/usb/id_ed25519_github" 53 cp /mnt/usb/id_ed25519_github.pub $SSH_DIR/id_ed25519.pub 54 cp /mnt/usb/id_ed25519_github $SSH_DIR/id_ed25519 55 chmod 600 $SSH_DIR/id_ed25519 56 chmod 644 $SSH_DIR/id_ed25519.pub 57} 58 59change_ownership() { 60 chown nixos:wheel $SSH_DIR/id_ed25519{,.pub} 61 chown nixos:wheel $SSH_DIR/id_ed25519_{agenix,agenix.pub} 62} 63 64trap unmount_usb EXIT 65 66setup_ssh_directory 67mount_usb 68copy_keys 69set_keys 70change_ownership 71unmount_usb