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."
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 '<home-manager>' -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 '<home-manager>' -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