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}
|
||||
LIST=docker-compose.*.yml
|
||||
SAVEFILE=$HOME/.local/faulty/$PROJECT_NAME.save
|
||||
|
||||
alias dc="docker-compose -p $PROJECT_NAME"
|
||||
# alias dc="echo docker-compose -p $PROJECT_NAME"
|
||||
|
||||
fatal() {
|
||||
echo "FATAL: $@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
alias _p="printf \"%s\""
|
||||
default() {
|
||||
fopts=""
|
||||
for f in $LIST; do
|
||||
|
@ -19,6 +16,37 @@ default() {
|
|||
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
|
||||
handleFallthrough() {
|
||||
cmd=${1:-}; shift
|
||||
|
@ -27,9 +55,9 @@ handleFallthrough() {
|
|||
[ -n "$1" ] || fatal "no directory specified"
|
||||
[ -d /srv/$1 ] || fatal "directory doesn't exist"
|
||||
ls /srv/$1
|
||||
printf "Are you sure? (yes/no) [no]: "
|
||||
printf "Are you sure? (y/n) [n]: "
|
||||
read answer
|
||||
[ "$answer" = "yes" ] && sudo rm -rf /srv/$1 || fatal "cancelled"
|
||||
[ "$answer" = "y" ] && sudo rm -rf /srv/$1 || fatal "cancelled"
|
||||
;;
|
||||
|
||||
-i) #include
|
||||
|
@ -82,6 +110,11 @@ handleFallthrough() {
|
|||
esac
|
||||
;;
|
||||
|
||||
--save) # save behaviour
|
||||
handleFallthrough $@
|
||||
write_savefile $SAVEFILE
|
||||
;;
|
||||
|
||||
# preference
|
||||
logs) default logs --tail=20 -f $@ ;;
|
||||
up) default up -d $@ ;;
|
||||
|
@ -131,9 +164,41 @@ handleFallthrough() {
|
|||
_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 $cmd $@ ;;
|
||||
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 $@
|
||||
}
|
||||
|
||||
main $@
|
Reference in a new issue