#!/usr/bin/env bash init() { # Vars CURRENT_USERNAME='frostphoenix' # Colors NORMAL=$(tput sgr0) WHITE=$(tput setaf 7) BLACK=$(tput setaf 0) RED=$(tput setaf 1) GREEN=$(tput setaf 2) YELLOW=$(tput setaf 3) BLUE=$(tput setaf 4) MAGENTA=$(tput setaf 5) CYAN=$(tput setaf 6) BRIGHT=$(tput bold) UNDERLINE=$(tput smul) } confirm() { echo -en "[${GREEN}y${NORMAL}/${RED}n${NORMAL}]: " read -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]] then exit 0 fi } print_header() { echo -E "$CYAN _____ _ ____ _ _ | ___| __ ___ ___| |_| _ \| |__ ___ ___ _ __ (_)_ __ | |_ | '__/ _ \/ __| __| |_) | '_ \ / _ \ / _ \ '_ \| \ \/ / | _|| | | (_) \__ \ |_| __/| | | | (_) | __/ | | | |> < |_| |_| \___/|___/\__|_| |_| |_|\___/ \___|_| |_|_/_/\_\ _ _ _ ___ ___ _ _ _ | \ | (_)_ __/ _ \ ___ |_ _|_ __ ___| |_ __ _| | | ___ _ __ | \| | \ \/ / | | / __| | || '_ \/ __| __/ _' | | |/ _ \ '__| | |\ | |> <| |_| \__ \ | || | | \__ \ || (_| | | | __/ | |_| \_|_/_/\_\\\\___/|___/ |___|_| |_|___/\__\__,_|_|_|\___|_| $BLUE https://github.com/Frost-Phoenix $RED ! To make sure everything runs correctly DONT run as root ! $GREEN -> '"./install.sh"' $NORMAL " } get_username() { echo -en "Enter your$GREEN username$NORMAL : $YELLOW" read username echo -en "$NORMAL" echo -en "Use$YELLOW "$username"$NORMAL as ${GREEN}username${NORMAL} ? " confirm } set_username() { sed -i -e "s/${CURRENT_USERNAME}/${username}/g" ./flake.nix sed -i -e "s/${CURRENT_USERNAME}/${username}/g" ./modules/home/audacious/config } get_host() { echo -en "Choose a ${GREEN}host${NORMAL} - [${YELLOW}D${NORMAL}]esktop, [${YELLOW}L${NORMAL}]aptop or [${YELLOW}V${NORMAL}]irtual machine: " read -n 1 -r echo if [[ $REPLY =~ ^[Dd]$ ]]; then HOST='desktop' elif [[ $REPLY =~ ^[Ll]$ ]]; then HOST='laptop' elif [[ $REPLY =~ ^[Vv]$ ]]; then HOST='vm' else echo "Invalid choice. Please select 'D' for desktop, 'L' for laptop or 'V' for virtual machine." exit 1 fi echo -en "$NORMAL" echo -en "Use the$YELLOW "$HOST"$NORMAL ${GREEN}host${NORMAL} ? " confirm } install() { echo -e "\n${RED}START INSTALL PHASE${NORMAL}\n" sleep 0.2 # Create basic directories echo -e "Creating folders:" echo -e " - ${MAGENTA}~/Music${NORMAL}" echo -e " - ${MAGENTA}~/Documents${NORMAL}" echo -e " - ${MAGENTA}~/Pictures/wallpapers/others${NORMAL}" mkdir -p ~/Music mkdir -p ~/Documents mkdir -p ~/Pictures/wallpapers/others sleep 0.2 # Copy the wallpapers echo -e "Copying all ${MAGENTA}wallpapers${NORMAL}" cp -r wallpapers/wallpaper.png ~/Pictures/wallpapers cp -r wallpapers/otherWallpaper/catppuccin/* ~/Pictures/wallpapers/others/ cp -r wallpapers/otherWallpaper/nixos/* ~/Pictures/wallpapers/others/ cp -r wallpapers/otherWallpaper/others/* ~/Pictures/wallpapers/others/ sleep 0.2 # Get the hardware configuration echo -e "Copying ${MAGENTA}/etc/nixos/hardware-configuration.nix${NORMAL} to ${MAGENTA}./hosts/${HOST}/${NORMAL}\n" cp /etc/nixos/hardware-configuration.nix hosts/${HOST}/hardware-configuration.nix sleep 0.2 # Last Confirmation echo -en "You are about to start the system build, do you want to process ? " confirm # Build the system (flakes + home manager) echo -e "\nBuilding the system...\n" sudo nixos-rebuild switch --flake .#${HOST} } main() { init print_header get_username set_username get_host install } main && exit 0