feat: save functionality

This commit is contained in:
Didier Slof 2022-12-07 09:07:43 +01:00 committed by Gitea
parent 222376d13f
commit 6ca2a983ff

83
man
View file

@ -2,15 +2,12 @@
PROJECT_NAME=${PROJECT_NAME:-neo} PROJECT_NAME=${PROJECT_NAME:-neo}
LIST=docker-compose.*.yml LIST=docker-compose.*.yml
SAVEFILE=$HOME/.local/faulty/$PROJECT_NAME.save
alias dc="docker-compose -p $PROJECT_NAME" alias dc="docker-compose -p $PROJECT_NAME"
# alias dc="echo docker-compose -p $PROJECT_NAME" # alias dc="echo docker-compose -p $PROJECT_NAME"
fatal() { alias _p="printf \"%s\""
echo "FATAL: $@"
exit 1
}
default() { default() {
fopts="" fopts=""
for f in $LIST; do for f in $LIST; do
@ -19,6 +16,37 @@ default() {
dc $fopts $* dc $fopts $*
} }
safe_env_load() {
# $1 = file
# $2 = var
# get env var from regex instead of inclusion
[ ! -f $1 ] && fatal "file doesn't exist"
[ ! -r $1 ] && fatal "file not readable"
res=$(grep -E "^$2=" $1 | sed -E "s/^$2=\"(.*)\"/\1/")
[ -z "$res" ] && fatal "var not found"
_p $res
}
write_savefile() {
[ -d $(dirname $1) ] || mkdir -p $(dirname $1})
echo -n "LIST=\"" > $1
for li in $LIST; do
echo -n " $li" >> $1
done
echo "\"" >> $1
}
load_savefile() {
[ "$1" == "/dev/null" ] && return
[ ! -f $1 ] && return
LIST=$(safe_env_load $1 LIST)
}
fatal() {
echo "FATAL: $@"
exit 1
}
includechain=0 includechain=0
handleFallthrough() { handleFallthrough() {
cmd=${1:-}; shift cmd=${1:-}; shift
@ -27,9 +55,9 @@ handleFallthrough() {
[ -n "$1" ] || fatal "no directory specified" [ -n "$1" ] || fatal "no directory specified"
[ -d /srv/$1 ] || fatal "directory doesn't exist" [ -d /srv/$1 ] || fatal "directory doesn't exist"
ls /srv/$1 ls /srv/$1
printf "Are you sure? (yes/no) [no]: " printf "Are you sure? (y/n) [n]: "
read answer read answer
[ "$answer" = "yes" ] && sudo rm -rf /srv/$1 || fatal "cancelled" [ "$answer" = "y" ] && sudo rm -rf /srv/$1 || fatal "cancelled"
;; ;;
-i) #include -i) #include
@ -44,7 +72,7 @@ handleFallthrough() {
;; ;;
-x) #exclude -x) #exclude
LIST=$(echo $LIST | sed "s/docker-compose.$1.yml//") LIST=$(echo $LIST | sed "s/docker-compose.$1.yml/ /")
shift shift
handleFallthrough $@ handleFallthrough $@
;; ;;
@ -82,6 +110,11 @@ handleFallthrough() {
esac esac
;; ;;
--save) # save behaviour
handleFallthrough $@
write_savefile $SAVEFILE
;;
# preference # preference
logs) default logs --tail=20 -f $@ ;; logs) default logs --tail=20 -f $@ ;;
up) default up -d $@ ;; up) default up -d $@ ;;
@ -131,9 +164,41 @@ handleFallthrough() {
_hr _hr
;; ;;
debug)
load_savefile $SAVEFILE
_() {
eval "echo -n \"$1=\"; echo \$$1"
}
_ SAVEFILE
_ LIST
for i in $LIST; do
echo $i
done
return
;;
default) default $@ ;; default) default $@ ;;
*|'') default $cmd $@ ;; *|'') default $cmd $@ ;;
esac esac
} }
handleFallthrough $@ main() {
case $1 in
--ignore-save)
SAVEFILE=/dev/null
shift 1
;;
--set-save)
SAVEFILE=$2
shift 2
main $@; exit 0
;;
--del-save)
rm $SAVEFILE
shift
;;
esac
load_savefile $SAVEFILE
handleFallthrough $@
}
main $@