71 lines
1.5 KiB
Bash
71 lines
1.5 KiB
Bash
#!/bin/bash
|
|
LOGFILE=$HOME/log/sway.log
|
|
|
|
## helpers
|
|
function _log() {
|
|
mkdir -p $(dirname $LOGFILE)
|
|
echo $(date) $* | tee -a $LOGFILE
|
|
}
|
|
|
|
function _check_app() {
|
|
which $1 &> /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
_log _check_app: ERROR missing app \"$1\"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function _check_inhibit() {
|
|
if [ -e $1 ]; then
|
|
_log _check_inhibit: INFO found inhibit file $1
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function _check_running() {
|
|
pgrep $1
|
|
ret=$?
|
|
if [ $ret -eq 0 ]; then
|
|
_log _check_running: INFO already running $1
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function _set_inhibit() {
|
|
file=$1
|
|
action=$2
|
|
case "$action" in
|
|
0|off)
|
|
rm -f $file
|
|
_log _set_inhibit: INFO inhibit disabled
|
|
;;
|
|
1|on)
|
|
touch $file
|
|
_log _set_inhibit: INFO inhibit enabled
|
|
;;
|
|
*)
|
|
status=0
|
|
if [ -f $file ]; then
|
|
status=1
|
|
fi
|
|
_log _set_inhibit: INFO inhibit status: $status
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function getProgressString() {
|
|
ITEMS="$1" # The total number of items(the width of the bar)
|
|
FILLED_ITEM="$2" # The look of a filled item
|
|
NOT_FILLED_ITEM="$3" # The look of a not filled item
|
|
STATUS="$4" # The current progress status in percent
|
|
|
|
# calculate how many items need to be filled and not filled
|
|
FILLED_ITEMS=$(echo "((${ITEMS} * ${STATUS})/100 + 0.5) / 1" | bc)
|
|
NOT_FILLED_ITEMS=$(echo "$ITEMS - $FILLED_ITEMS" | bc)
|
|
|
|
# Assemble the bar string
|
|
msg=$(printf "%${FILLED_ITEMS}s" | sed "s| |${FILLED_ITEM}|g")
|
|
msg=${msg}$(printf "%${NOT_FILLED_ITEMS}s" | sed "s| |${NOT_FILLED_ITEM}|g")
|
|
echo "$msg"
|
|
}
|
|
|