mirror of
https://git.pionaiki.com/marta/nixie.git
synced 2025-10-09 05:47:21 +00:00
Init
This commit is contained in:
commit
c6d952ab49
1 changed files with 111 additions and 0 deletions
111
nixie
Executable file
111
nixie
Executable file
|
@ -0,0 +1,111 @@
|
|||
#!/usr/bin/env bash
|
||||
# Reset
|
||||
NC='\033[0m' # Text Reset
|
||||
# Regular Colors
|
||||
Black='\033[0;30m' # Black
|
||||
Red='\033[0;31m' # Red
|
||||
Green='\033[0;32m' # Green
|
||||
Yellow='\033[0;33m' # Yellow
|
||||
Blue='\033[0;34m' # Blue
|
||||
Purple='\033[0;35m' # Purple
|
||||
Cyan='\033[0;36m' # Cyan
|
||||
White='\033[0;37m' # White
|
||||
# Bold
|
||||
BBlack='\033[1;30m' # Black
|
||||
BRed='\033[1;31m' # Red
|
||||
BGreen='\033[1;32m' # Green
|
||||
BYellow='\033[1;33m' # Yellow
|
||||
BBlue='\033[1;34m' # Blue
|
||||
BPurple='\033[1;35m' # Purple
|
||||
BCyan='\033[1;36m' # Cyan
|
||||
BWhite='\033[1;37m' # White
|
||||
# High Intensity
|
||||
IBlack='\033[0;90m' # Black
|
||||
IRed='\033[0;91m' # Red
|
||||
IGreen='\033[0;92m' # Green
|
||||
IYellow='\033[0;93m' # Yellow
|
||||
IBlue='\033[0;94m' # Blue
|
||||
IPurple='\033[0;95m' # Purple
|
||||
ICyan='\033[0;96m' # Cyan
|
||||
IWhite='\033[0;97m' # White
|
||||
# Bold High Intensity
|
||||
BIBlack='\033[1;90m' # Black
|
||||
BIRed='\033[1;91m' # Red
|
||||
BIGreen='\033[1;92m' # Green
|
||||
BIYellow='\033[1;93m' # Yellow
|
||||
BIBlue='\033[1;94m' # Blue
|
||||
BIPurple='\033[1;95m' # Purple
|
||||
BICyan='\033[1;96m' # Cyan
|
||||
BIWhite='\033[1;97m' # White
|
||||
|
||||
# Functions
|
||||
|
||||
QUIT () {
|
||||
popd
|
||||
exit
|
||||
}
|
||||
|
||||
CHOOSE_CASE () {
|
||||
echo -e -n "${IPurple}Build changes? ${Purple}Yes/Preview/Edit/Restore/Quit. (y/p/e/r/q):${NC} "
|
||||
|
||||
read CHOICE
|
||||
case $CHOICE in
|
||||
[yY]* ) BUILD ;;
|
||||
[pP]* ) PREVIEW ;;
|
||||
[eE]* ) EDIT ;;
|
||||
[rR]* ) RESTORE ;;
|
||||
[qQ]* ) echo -e "${IPurple}Quitting nixie. ${Purple}Changes kept in /etc/nixos.${NC}" && QUIT ;;
|
||||
*) echo -e -n "[ ${Red}incorrect input${NC} ] " && CHOOSE_CASE ;;
|
||||
esac
|
||||
}
|
||||
|
||||
BUILD () {
|
||||
echo -e "${IPurple}This will rebuild NixOS, and if there are no errors, commit changes to git."
|
||||
echo -e -n "${IPurple}Are you sure you want to do this? ${Purple}(Y/n):${NC} "
|
||||
read CHOICE
|
||||
case $CHOICE in
|
||||
[nN]* ) echo -e -n "[ ${Red}cancelled${NC} ] " && CHOOSE_CASE ;;
|
||||
*)
|
||||
git add .
|
||||
echo -e "${IPurple}Rebuilding NixOS...${NC}"
|
||||
sudo nixos-rebuild switch
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "[ ${Bred}error${NC} ] ${Red}Rebuilding NixOS failed.${NC}"
|
||||
QUIT
|
||||
fi
|
||||
echo -e "${IPurple}Committing the changes...${NC}"
|
||||
sudo git commit --no-status -am "$(sudo nixos-rebuild list-generations | grep current)"
|
||||
echo -e "${IPurple}System rebuilt, configuration commited. Quitting nixie.${NC}"
|
||||
QUIT
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
PREVIEW () {
|
||||
sudo git diff
|
||||
CHOOSE_CASE
|
||||
}
|
||||
|
||||
EDIT () {
|
||||
sudo vim .
|
||||
sudo git diff --stat
|
||||
CHOOSE_CASE
|
||||
}
|
||||
|
||||
RESTORE () {
|
||||
echo -e "[ ${Yellow}Warning${NC} ] ${Purple}This will restore /etc/nixos to the last commit.${NC}"
|
||||
echo -e -n "[ ${Yellow}Warning${NC} ] ${Purple}Are you sure you want to disregard the changes? (y/N):${NC} "
|
||||
read CHOICE
|
||||
case $CHOICE in
|
||||
[yY]* ) sudo -k git restore . && echo -e "${IPurple}Quitting nixie. ${Purple}Changes disregarded.${NC}" && QUIT ;;
|
||||
*) echo -e -n "[ ${Red}cancelled${NC} ] " && CHOOSE_CASE ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Script
|
||||
pushd /etc/nixos
|
||||
|
||||
echo -e "${IPurple}Running pixie. You might be asked to input the root password.${NC}"
|
||||
EDIT
|
||||
|
||||
QUIT
|
Loading…
Add table
Reference in a new issue