From 3c81b59228ba97d9c37ab9f0db5cbb5ca6f660e3 Mon Sep 17 00:00:00 2001 From: TrudeEH Date: Thu, 10 Oct 2024 00:37:37 +0100 Subject: [PATCH] Simplify installer.sh and macOS support --- install.sh | 192 ++++++++++------------------------------------------- 1 file changed, 34 insertions(+), 158 deletions(-) diff --git a/install.sh b/install.sh index d2fb5175..0f09049d 100755 --- a/install.sh +++ b/install.sh @@ -16,168 +16,44 @@ if ! nix --version &>/dev/null; then echo "[I] Installed Nix." fi -E='echo -e' -e='echo -en' -trap "R;exit" 2 -ESC=$($e "\e") -TPUT() { $e "\e[${1};${2}H"; } -CLEAR() { $e "\ec"; } -CIVIS() { $e "\e[?25l"; } -MARK() { $e "\e[7m"; } -UNMARK() { $e "\e[27m"; } -R() { - CLEAR - stty sane - CLEAR -} -HEAD() { - for each in $(seq 1 11); do - $E " \xE2\x94\x82 \xE2\x94\x82" - done - MARK - TPUT 1 5 - $E " Trude's Toolkit " - UNMARK -} -i=0 -FOOT() { - MARK - TPUT 11 5 - $E " UP \xE2\x86\x91 \xE2\x86\x93 DOWN ENTER - SELECT,NEXT " - UNMARK -} -ARROW() { - IFS= read -s -n1 key 2>/dev/null >&2 - if [[ $key = $ESC ]]; then - read -s -n1 key 2>/dev/null >&2 - if [[ $key = \[ ]]; then - read -s -n1 key 2>/dev/null >&2 - if [[ $key = A ]]; then echo up; fi - if [[ $key = B ]]; then echo dn; fi - fi - fi - if [[ "$key" == "$($e \\x0A)" ]]; then echo enter; fi -} -M0() { - TPUT 4 11 - $e "Set up Generic System" -} -M1() { - TPUT 5 11 - $e "Set up NixOS" -} -M2() { - TPUT 6 11 - $e "Set up macOS" -} -M3() { - TPUT 8 11 - $e "EXIT" -} -LM=3 -MENU() { for each in $(seq 0 $LM); do M${each}; done; } -POS() { - if [[ $cur == up ]]; then ((i--)); fi - if [[ $cur == dn ]]; then ((i++)); fi - if [[ $i -lt 0 ]]; then i=$LM; fi - if [[ $i -gt $LM ]]; then i=0; fi -} -REFRESH() { - after=$((i + 1)) - before=$((i - 1)) - if [[ $before -lt 0 ]]; then before=$LM; fi - if [[ $after -gt $LM ]]; then after=0; fi - if [[ $j -lt $i ]]; then - UNMARK - M$before - else - UNMARK - M$after - fi - if [[ $after -eq 0 ]] || [ $before -eq $LM ]; then - UNMARK - M$before - M$after - fi - j=$i - UNMARK - M$before - M$after -} -INIT() { - R - HEAD - FOOT - MENU -} -SC() { - REFRESH - MARK - $S - $b - cur=$(ARROW) -} -ES() { - MARK - $e "ENTER = main menu " - $b - read - INIT -} -INIT -while [[ "$O" != " " ]]; do - case $i in - 0) - S=M0 - SC - if [[ $cur == enter ]]; then - R - # Install Home-manager - nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager - nix-channel --update - nix-shell '' -A install +echo +echo "####################" +echo "# Trude's Dotfiles #" +echo "####################" +echo +echo "1) Set up Generic System" +echo "2) Set up NixOS" +echo "3) Set up macOS" +echo +read -p "> " main_menu - # Apply config - mkdir -p $HOME/.config/home-manager - rm $HOME/.config/home-manager/home.nix - cp ./nix/home.nix $HOME/.config/home-manager/home.nix - - home-manager -b backup switch - ES - fi - ;; +case $main_menu in 1) - S=M1 - SC - if [[ $cur == enter ]]; then - R - # Dotfiles for NixOS - sudo cp -rf ./nix/nixos/* /etc/nixos/ - sudo cp -f ./nix/home.nix /etc/nixos/ - sudo nixos-rebuild switch --flake /etc/nixos#default - ES - fi + # Install Home-manager + nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager + nix-channel --update + nix-shell '' -A install + + # Apply config + mkdir -p $HOME/.config/home-manager + rm $HOME/.config/home-manager/home.nix + cp ./nix/home.nix $HOME/.config/home-manager/home.nix + + home-manager -b backup switch ;; 2) - S=M2 - SC - if [[ $cur == enter ]]; then - R - mkdir -p ~/.config/nix-darwin/ - cp -rf ./nix/macOS/* ~/.config/nix-darwin/ - cp -f ./nix/home.nix ~/.config/nix-darwin/ - nix run nix-darwin -- switch --flake ~/.config/nix-darwin - ES - fi + sudo cp -rf ./nix/nixos/* /etc/nixos/ + sudo cp -f ./nix/home.nix /etc/nixos/ + sudo nixos-rebuild switch --flake /etc/nixos#default ;; 3) - S=M3 - SC - if [[ $cur == enter ]]; then - R - exit 0 - fi + mkdir -p ~/.config/nix-darwin/ + cp -rf ./nix/macOS/* ~/.config/nix-darwin/ + cp -f ./nix/home.nix ~/.config/nix-darwin/ + nix run nix-darwin -- switch --flake ~/.config/nix-darwin ;; - esac - POS -done + *) + echo "Invalid option selected." + return 1 + ;; +esac