61 lines
1.6 KiB
Bash
Executable File
61 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
SETTINGS="settings.nix"
|
|
REPO_DIR=$(pwd)
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[0;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 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
|
|
fi
|
|
else
|
|
GENERATE=true
|
|
fi
|
|
|
|
if [ "$GENERATE" = true ]; then
|
|
username=$(whoami)
|
|
userdesc=$(getent passwd "$username" | cut -d: -f5 | cut -d, -f1)
|
|
userdesc=${userdesc:-$username}
|
|
|
|
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"
|
|
else
|
|
echo -e "${YELLOW}no hardware-configuration.nix found - run nixos-generate-config first${NC}"
|
|
fi
|