From 285b8f3799f07303200f41752a7e96bb53287da7 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Thu, 22 Jan 2026 11:10:21 -0700 Subject: [PATCH] oop --- .DS_Store | Bin 0 -> 8196 bytes Makefile | 48 ++++------------------- scripts/init.sh | 99 +++++++++++++++++++++++++----------------------- 3 files changed, 60 insertions(+), 87 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..95c70c2686c1f091d58be973b53de58973002da7 GIT binary patch literal 8196 zcmeHM%}*0S6n|4twgS3fL5!L-_F^JY#1CRTSS!R3V<0U-2x!^1LtWX<)ZHx~5|WXFuB?IF9ki;r5t+B39zB;gxM*zfb?3M*(JO@ahq{g(yx9ngdBIG_7I4Fwo9`IJ+MO2Lk+~k@LF< zr3}_fKV^~515gAG3|7H~GSt9F-w=fo*x{v;u{%WW2Hd)=9I#UTk*U- zvb{Y%ab+}lZS4BaXmb1J_!!DpZ|v;Et)bNATiN`YS7H1G?f?tXFE;2`zxUdgC`CAM zi|cw<L_O4(A`cS|#? zs{sucn&d?>ThZs9H_HPzbU9mGma~VnGR;;w&L~zeQx&RUp85e|o6o|c-d{ybQeP5eca1ri64wm5=)ZsO}g?I1~KEpTo0Y6DU87Ak+MKVgRlL?Y0cSx2jkrm>Q zr^-Lpc+}_gcp6B6LgZ1e=X~aIRz{8RibEEraPCPAqA3ix3Y1#ICnoY@bHMgsU>7k= zU8r^l?>9~19kKpz!l#7;6F&cQ__RFgNcbdlmJ=C^Vg3p*geYucKB{1Ni2Twyhc$;u z-#+8)llx>YYxcv~JV2#Otz|@<|ED_N{~w?go23{A3 $(NIXOS_DIR)" - -unlink: - @if [ -L "$(NIXOS_DIR)" ]; then \ - sudo rm $(NIXOS_DIR); \ - sudo mkdir -p $(NIXOS_DIR); \ - echo "unlinked"; \ - else \ - echo "/etc/nixos is not a symlink"; \ - fi rebuild: - sudo nixos-rebuild switch + git add . + sudo nixos-rebuild switch --flake .#lavitz update: - sudo nixos-rebuild switch --upgrade + nix flake update + @$(MAKE) --no-print-directory rebuild purge: sudo nix-collect-garbage -d sudo /run/current-system/bin/switch-to-configuration boot - -check: - nix-instantiate '' -A system --dry-run - -edit: - @$${EDITOR:-nano} $(SETTINGS) diff --git a/scripts/init.sh b/scripts/init.sh index fecee86..276860a 100755 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -1,60 +1,65 @@ #!/usr/bin/env bash -SETTINGS="settings.nix" -REPO_DIR=$(pwd) +set -e + +TARGET_DIR="$HOME/Development/lavitz" +NIXOS_DIR="/etc/nixos" +CURRENT_DIR=$(pwd) GREEN='\033[0;32m' YELLOW='\033[0;33m' RED='\033[0;31m' -NC='\033[0m' # No Color +NC='\033[0m' -# 1. Generate settings.nix -if [ -f "$SETTINGS" ]; then - echo -e "${YELLOW}settings.nix exists. overwrite? [y/N]${NC}" - read -r confirm - if [[ "$confirm" != "y" && "$confirm" != "Y" ]]; then - echo "keeping existing settings" - else - GENERATE=true +echo -e "${GREEN}NixOS Configuration Setup${NC}" +echo "" + +if [ "$CURRENT_DIR" != "$TARGET_DIR" ]; then + echo -e "${YELLOW}Repository is not in $TARGET_DIR${NC}" + + if [ -d "$TARGET_DIR" ]; then + echo -e "${RED}$TARGET_DIR already exists!${NC}" + echo "Please remove it or move this repo manually." + exit 1 fi -else - GENERATE=true + + echo "Creating ~/Development directory..." + mkdir -p "$HOME/Development" + + echo "Moving repository to $TARGET_DIR..." + mv "$CURRENT_DIR" "$TARGET_DIR" + + echo -e "${GREEN}Repository moved to $TARGET_DIR${NC}" + echo "" + echo -e "${YELLOW}Please cd to $TARGET_DIR and run 'make init' again${NC}" + exit 0 fi -if [ "$GENERATE" = true ]; then - username=$(whoami) - userdesc=$(getent passwd "$username" | cut -d: -f5 | cut -d, -f1) - userdesc=${userdesc:-$username} +echo -e "${GREEN}Repository is in correct location: $TARGET_DIR${NC}" +echo "" - echo "user: $username ($userdesc)" - echo "" - - echo "hostname:" - read -r hostname - - echo "timezone [America/Edmonton]:" - read -r tz - tz=${tz:-America/Edmonton} - - echo "locale [en_CA.UTF-8]:" - read -r locale - locale=${locale:-en_CA.UTF-8} - - echo "" - echo "{" > "$SETTINGS" - echo " hostname = \"$hostname\";" >> "$SETTINGS" - echo " username = \"$username\";" >> "$SETTINGS" - echo " userDescription = \"$userdesc\";" >> "$SETTINGS" - echo " timezone = \"$tz\";" >> "$SETTINGS" - echo " locale = \"$locale\";" >> "$SETTINGS" - echo " userGroups = [ \"networkmanager\" \"wheel\" \"docker\" \"plugdev\" ];" >> "$SETTINGS" - echo "}" >> "$SETTINGS" - echo "wrote $SETTINGS" -fi - -# 2. Copy hardware-configuration.nix if [ -f "/etc/nixos/hardware-configuration.nix" ]; then - cp /etc/nixos/hardware-configuration.nix "$REPO_DIR/hardware-configuration.nix" - echo "copied hardware-configuration.nix" + cp /etc/nixos/hardware-configuration.nix "$TARGET_DIR/hardware-configuration.nix" + echo -e "${GREEN}Copied hardware-configuration.nix${NC}" else - echo -e "${YELLOW}no hardware-configuration.nix found - run nixos-generate-config first${NC}" + echo -e "${YELLOW}No hardware-configuration.nix found${NC}" + echo "Run 'sudo nixos-generate-config' first if this is a fresh install" fi + +if [ -L "$NIXOS_DIR" ]; then + echo -e "${YELLOW}/etc/nixos is already a symlink${NC}" + sudo rm "$NIXOS_DIR" +elif [ -d "$NIXOS_DIR" ]; then + echo -e "${YELLOW}Backing up existing /etc/nixos to /etc/nixos.bak${NC}" + sudo mv "$NIXOS_DIR" "${NIXOS_DIR}.bak" +fi + +echo "Creating symlink: $TARGET_DIR -> $NIXOS_DIR" +sudo ln -sf "$TARGET_DIR" "$NIXOS_DIR" + +echo "" +echo -e "${GREEN}Setup complete!${NC}" +echo "" +echo "Next steps:" +echo " 1. Ensure hardware-configuration.nix exists in $TARGET_DIR" +echo " 2. Run 'git add .' to track files (required for flakes)" +echo " 3. Run 'sudo nixos-rebuild switch --flake .#lavitz'"