Simplify installer.sh and macOS support

This commit is contained in:
2024-10-10 00:37:37 +01:00
parent a0c323da16
commit 3c81b59228

View File

@@ -16,168 +16,44 @@ if ! nix --version &>/dev/null; then
echo "[I] Installed Nix." echo "[I] Installed Nix."
fi fi
E='echo -e' echo
e='echo -en' echo "####################"
trap "R;exit" 2 echo "# Trude's Dotfiles #"
ESC=$($e "\e") echo "####################"
TPUT() { $e "\e[${1};${2}H"; } echo
CLEAR() { $e "\ec"; } echo "1) Set up Generic System"
CIVIS() { $e "\e[?25l"; } echo "2) Set up NixOS"
MARK() { $e "\e[7m"; } echo "3) Set up macOS"
UNMARK() { $e "\e[27m"; } echo
R() { read -p "> " main_menu
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 '<home-manager>' -A install
# Apply config case $main_menu in
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
;;
1) 1)
S=M1 # Install Home-manager
SC nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
if [[ $cur == enter ]]; then nix-channel --update
R nix-shell '<home-manager>' -A install
# Dotfiles for NixOS
sudo cp -rf ./nix/nixos/* /etc/nixos/ # Apply config
sudo cp -f ./nix/home.nix /etc/nixos/ mkdir -p $HOME/.config/home-manager
sudo nixos-rebuild switch --flake /etc/nixos#default rm $HOME/.config/home-manager/home.nix
ES cp ./nix/home.nix $HOME/.config/home-manager/home.nix
fi
home-manager -b backup switch
;; ;;
2) 2)
S=M2 sudo cp -rf ./nix/nixos/* /etc/nixos/
SC sudo cp -f ./nix/home.nix /etc/nixos/
if [[ $cur == enter ]]; then sudo nixos-rebuild switch --flake /etc/nixos#default
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
;; ;;
3) 3)
S=M3 mkdir -p ~/.config/nix-darwin/
SC cp -rf ./nix/macOS/* ~/.config/nix-darwin/
if [[ $cur == enter ]]; then cp -f ./nix/home.nix ~/.config/nix-darwin/
R nix run nix-darwin -- switch --flake ~/.config/nix-darwin
exit 0
fi
;; ;;
esac *)
POS echo "Invalid option selected."
done return 1
;;
esac