From b0b13a93f6bac631234abcb00ccea225257cf47b Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 27 May 2018 08:26:37 -0300 Subject: Xalarm: refactor cancel, pause and resume --- xalarm | 53 +++++++++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/xalarm b/xalarm index a694e5a..6a3aab4 100755 --- a/xalarm +++ b/xalarm @@ -9,12 +9,6 @@ FULLNAME="$0" BASENAME="`basename $0`" -# List alarms -function xalarm_list { - ps -U $USER -o pid,lstart,command | grep xalarm | grep -v grep | grep -v list | grep -v cancel | \ - sed -e "s|$FULLNAME||" -e "s|/bin/bash||" | grep -v -- "sed -e" -} - # Set alarm function xalarm_set { # Delay @@ -38,43 +32,42 @@ function xalarm_set { fi } -# Cancel alarms -function xalarm_cancel { +# List alarms +function xalarm_list { + ps -U $USER -o pid,state,lstart,command | grep xalarm | grep -v grep | grep -v list | grep -v cancel | grep -v pause | grep -v resume | \ + sed -e "s|$FULLNAME||" -e "s|/bin/bash||" | grep -v -- "sed -e" +} + +# Return xalarm PIDs +function xalarm_pids { if [ ! -z "$1" ]; then if xalarm_list | awk '{ print $1 }' | grep -q "^$1"; then - kill $1 + echo $1 fi else - for pid in `xalarm_list | awk '{ print $1 }'`; do - kill $pid - done + xalarm_list | awk '{ print $1 }' fi } +# Cancel alarms +function xalarm_cancel { + for pid in `xalarm_pids $1`; do + kill $pid + done +} + # Pause alarms function xalarm_pause { - if [ ! -z "$1" ]; then - if xalarm_list | awk '{ print $1 }' | grep -q "^$1"; then - kill -CONT $1 - fi - else - for pid in `xalarm_list | awk '{ print $1 }'`; do - kill -CONT $pid - done - fi + for pid in `xalarm_pids $1`; do + kill -STOP $pid + done } # Resume alarms function xalarm_resume { - if [ ! -z "$1" ]; then - if xalarm_list | awk '{ print $1 }' | grep -q "^$1"; then - kill -CONT $1 - fi - else - for pid in `xalarm_list | awk '{ print $1 }'`; do - kill -CONT $pid - done - fi + for pid in `xalarm_pids $1`; do + kill -CONT $pid + done } # Usage -- cgit v1.2.3