deforaos-jobs: implement a verbose mode

This commit is contained in:
Pierre Pronchery 2021-11-10 04:00:33 +01:00
parent 630976396c
commit 152baa6274

View File

@ -29,7 +29,7 @@
#variables #variables
#executables #executables
DATABASE="database" DATABASE="database"
DEBUG= DEBUG="_debug"
LOCK="mkdir" LOCK="mkdir"
UNLOCK="rmdir" UNLOCK="rmdir"
SED="sed" SED="sed"
@ -49,6 +49,7 @@ QUERY_INIT="CREATE TABLE jobs (jobs_id INTEGER PRIMARY KEY, timestamp TIMESTAMP
QUERY_LIST="SELECT * FROM jobs" QUERY_LIST="SELECT * FROM jobs"
SYSCONFDIR="$PREFIX/etc" SYSCONFDIR="$PREFIX/etc"
VENDOR="DeforaOS" VENDOR="DeforaOS"
VERBOSE=1
#load local settings #load local settings
[ -f "$SYSCONFDIR/$VENDOR/$PROGNAME.conf" ] && [ -f "$SYSCONFDIR/$VENDOR/$PROGNAME.conf" ] &&
. "$SYSCONFDIR/$VENDOR/$PROGNAME.conf" . "$SYSCONFDIR/$VENDOR/$PROGNAME.conf"
@ -73,6 +74,7 @@ _database_add()
command="$1" command="$1"
query="$QUERY_ADD_BEGIN$(echo "$command" | _database_escape)$QUERY_ADD_END" query="$QUERY_ADD_BEGIN$(echo "$command" | _database_escape)$QUERY_ADD_END"
_info "Queueing command: $command"
_database_init || return 2 _database_init || return 2
_database_query "$query" > "$DEVNULL" || return 2 _database_query "$query" > "$DEVNULL" || return 2
} }
@ -108,6 +110,7 @@ _database_exec()
_database_unlock _database_unlock
code=-1 code=-1
if [ -n "$command" ]; then if [ -n "$command" ]; then
_info "Executing command: $command"
$DEBUG sh -c "$command" & $DEBUG sh -c "$command" &
pid=$! pid=$!
QUERY="UPDATE jobs SET pid='$pid' WHERE jobs_id='$jobs_id'" QUERY="UPDATE jobs SET pid='$pid' WHERE jobs_id='$jobs_id'"
@ -129,6 +132,7 @@ _database_init()
echo "filename=$DATABASE_FILE" > "$DATABASE_CONFFILE" echo "filename=$DATABASE_FILE" > "$DATABASE_CONFFILE"
fi fi
if [ ! -f "$DATABASE_FILE" ]; then if [ ! -f "$DATABASE_FILE" ]; then
_info "Initializing the database"
_database_lock || return 3 _database_lock || return 3
_database_query "$QUERY_INIT" > "$DEVNULL" || ret=2 _database_query "$QUERY_INIT" > "$DEVNULL" || ret=2
_database_unlock || return 4 _database_unlock || return 4
@ -145,6 +149,7 @@ _database_list()
return $? return $?
fi fi
_database_init || return 2 _database_init || return 2
_info "Listing the jobs"
_database_query "$QUERY_LIST" || return 2 _database_query "$QUERY_LIST" || return 2
} }
@ -173,7 +178,7 @@ _database_unlock()
#debug #debug
_debug() _debug()
{ {
echo "$@" 1>&3 [ $VERBOSE -ge 2 ] && echo "$@" 1>&3
"$@" "$@"
} }
@ -186,29 +191,39 @@ _error()
} }
#info
_info()
{
[ $VERBOSE -eq 0 ] || echo "$PROGNAME: $@"
}
#usage #usage
_usage() _usage()
{ {
echo "Usage: $PROGNAME [-d directory] add command" 1>&2 echo "Usage: $PROGNAME [-d directory][-qv] add command" 1>&2
echo " $PROGNAME [-d directory] exec" 1>&2 echo " $PROGNAME [-d directory][-qv] exec" 1>&2
echo " $PROGNAME [-d directory] list" 1>&2 echo " $PROGNAME [-d directory][-qv] list" 1>&2
return 1 return 1
} }
#main #main
directory= directory=
while getopts "DO:d:" name; do while getopts "O:d:qv" name; do
case "$name" in case "$name" in
D)
DEBUG="_debug"
;;
O) O)
export "${OPTARG%%=*}"="${OPTARG#*=}" export "${OPTARG%%=*}"="${OPTARG#*=}"
;; ;;
d) d)
directory="$OPTARG" directory="$OPTARG"
;; ;;
q)
VERBOSE=0
;;
v)
VERBOSE=$((VERBOSE + 1))
;;
?) ?)
_usage _usage
exit $? exit $?