refactored flag input for rebuild script
This commit is contained in:
@@ -2,18 +2,45 @@
|
|||||||
pkgs.writeShellApplication {
|
pkgs.writeShellApplication {
|
||||||
name = "rebuild";
|
name = "rebuild";
|
||||||
text = ''
|
text = ''
|
||||||
hooray() { scheck && runbg aplay ${self}/assets/sound/update.wav; }
|
checkbools() { [ "$all" = false ] && [ "$system" = false ] && [ "$home" = false ]; }
|
||||||
damn() { scheck && runbg aplay ${self}/assets/sound/error.wav; }
|
checkflags() {
|
||||||
[ $# -eq 0 ] && echo -e "\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both. Adding 'n' before the flag does a dry run, i.e. rebuild -nh" && damn && exit 1
|
str="$1"
|
||||||
scheck && runbg aplay ${self}/assets/sound/nixswitch-start.wav
|
[ -z "$str" ] && return
|
||||||
case $1 in
|
char="''${str: -1}"
|
||||||
"-h" ) if nh home switch -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
|
str="''${str::-1}"
|
||||||
"-s" ) if nh os switch -H ${host} "$FLAKEPATH"; then hooray; else damn; fi;;
|
if [ "$char" = "-" ]; then return 0; fi
|
||||||
"-a" ) if sudo sleep 0.1 && nh os switch -H ${host} "$FLAKEPATH" && nh home switch -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
|
case "$char" in
|
||||||
"-nh" ) if nh home switch -n -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
|
"a") if checkbools; then echo "$usage" && exit 1; else all=true; fi ;;
|
||||||
"-ns" ) if nh os switch -n -H ${host} "$FLAKEPATH"; then hooray; else damn; fi;;
|
"s") if checkbools; then system=true; else echo "$usage" && exit 1; fi ;;
|
||||||
"-na" ) if sudo sleep 0.1 && nh os switch -n -H ${host} "$FLAKEPATH" && nh home switch -n -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
|
"h") if checkbools; then home=true; else echo "$usage" && exit 1; fi ;;
|
||||||
* ) echo -e "\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config. Adding 'n' before the flag does a dry run, i.e. rebuild -nh" && damn && exit 1;;
|
"n") if [ "$dry" = false ]; then dry=true; else echo "$usage" && exit 1; fi ;;
|
||||||
esac
|
*) echo -e "$usage" && exit 1 ;;
|
||||||
|
esac
|
||||||
|
checkflags "$str"
|
||||||
|
}
|
||||||
|
|
||||||
|
system=false
|
||||||
|
home=false
|
||||||
|
all=false
|
||||||
|
dry=false
|
||||||
|
|
||||||
|
hooray() { scheck && runbg aplay "${self}/assets/sound/update.wav"; }
|
||||||
|
damn() { scheck && runbg aplay "${self}/assets/sound/error.wav"; }
|
||||||
|
|
||||||
|
usage="\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both. Including 'n' with the flag does a dry run, i.e. rebuild -nh"
|
||||||
|
|
||||||
|
{ [ $# -eq 0 ] || [ $# -gt 1 ]; } && echo -e "$usage" && damn && exit 1
|
||||||
|
if [[ "$1" =~ ^-[a-zA-Z]+$ ]]; then
|
||||||
|
checkflags "$1"
|
||||||
|
else
|
||||||
|
echo -e "$usage" && damn && exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dry_flag=""
|
||||||
|
[ "$dry" = true ] && dry_flag="-n"
|
||||||
|
|
||||||
|
[ "$all" = true ] && if sudo sleep 0.1 && nh os switch $dry_flag -H "${host}" "$FLAKEPATH" && nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi
|
||||||
|
[ "$system" = true ] && if nh os switch $dry_flag -H "${host}" "$FLAKEPATH"; then hooray; else damn; fi
|
||||||
|
[ "$home" = true ] && if nh home switch $dry_flag -c "${host}Home" "$FLAKEPATH"; then hooray; else damn; fi
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user