feat: save functionality
This commit is contained in:
parent
222376d13f
commit
6ca2a983ff
1 changed files with 74 additions and 9 deletions
79
man
79
man
|
@ -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
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 $@
|
handleFallthrough $@
|
||||||
|
}
|
||||||
|
|
||||||
|
main $@
|
Reference in a new issue