nix config
1#!/usr/bin/env bash
2set -e
3
4RED='\033[0;31m'
5GREEN='\033[0;32m'
6NC='\033[0m'
7
8username=${USER}
9export SSH_DIR=/Users/${username}/.ssh
10
11setup_ssh_directory() {
12 mkdir -p ${SSH_DIR}
13}
14
15prompt_for_key_generation() {
16 local key_name=$1
17 if [[ -f "${SSH_DIR}/${key_name}" ]]; then
18 echo -e "${RED}Existing SSH key found for ${key_name}.${NC}"
19 cat "${SSH_DIR}/${key_name}.pub"
20 read -p "Do you want to replace it? (y/n) " -n 1 -r
21 echo
22 if [[ $REPLY =~ ^[Yy]$ ]]; then
23 return 0 # Indicate key should be replaced
24 else
25 return 1 # Indicate key should be kept
26 fi
27 fi
28 return 0 # Indicate no key exists, so it should be created
29}
30
31generate_key() {
32 local key_name=$1
33 if prompt_for_key_generation "$key_name"; then
34 ssh-keygen -t ed25519 -f "${SSH_DIR}/${key_name}" -N ""
35 chown ${username}:staff "${SSH_DIR}/${key_name}"{,.pub}
36 else
37 echo -e "${GREEN}Kept existing ${key_name}.${NC}"
38 fi
39}
40
41setup_ssh_directory
42generate_key "id_ed25519"
43generate_key "id_ed25519_agenix"
44
45echo -e "${GREEN}SSH key setup complete.${NC}"
46echo -e "${GREEN}Remember to add the necessary keys to Github or other services as required.${NC}"