]> gitweb.fluxo.info Git - utils-x11.git/commitdiff
Xalarm: refactor cancel, pause and resume
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 27 May 2018 11:26:37 +0000 (08:26 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 27 May 2018 11:26:37 +0000 (08:26 -0300)
xalarm

diff --git a/xalarm b/xalarm
index a694e5a2b334257b13e566a6420bf091eea27703..6a3aab4335404f5ffcc695563c11956f518f136d 100755 (executable)
--- 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