Simplify installer.sh and macOS support
This commit is contained in:
162
install.sh
162
install.sh
@@ -16,122 +16,19 @@ 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
|
||||
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
|
||||
|
||||
case $main_menu in
|
||||
1)
|
||||
# Install Home-manager
|
||||
nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
|
||||
nix-channel --update
|
||||
@@ -143,41 +40,20 @@ while [[ "$O" != " " ]]; do
|
||||
cp ./nix/home.nix $HOME/.config/home-manager/home.nix
|
||||
|
||||
home-manager -b backup switch
|
||||
ES
|
||||
fi
|
||||
;;
|
||||
1)
|
||||
S=M1
|
||||
SC
|
||||
if [[ $cur == enter ]]; then
|
||||
R
|
||||
# Dotfiles for NixOS
|
||||
2)
|
||||
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
|
||||
;;
|
||||
2)
|
||||
S=M2
|
||||
SC
|
||||
if [[ $cur == enter ]]; then
|
||||
R
|
||||
3)
|
||||
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)
|
||||
S=M3
|
||||
SC
|
||||
if [[ $cur == enter ]]; then
|
||||
R
|
||||
exit 0
|
||||
fi
|
||||
*)
|
||||
echo "Invalid option selected."
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
POS
|
||||
done
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user