diff options
author | Karel Kočí <karel.koci@nic.cz> | 2016-10-17 07:24:53 +0200 |
---|---|---|
committer | Karel Kočí <karel.koci@nic.cz> | 2016-10-17 07:24:53 +0200 |
commit | 6c79fee24c35304d8f1e097abed0b8333053c7ba (patch) | |
tree | 3d9ae971f2d136764df03422a849c4274f4d023b | |
parent | 299db32119b6f51c36dcf34e0755dcabfa194855 (diff) | |
download | myconfigs-6c79fee24c35304d8f1e097abed0b8333053c7ba.tar.gz myconfigs-6c79fee24c35304d8f1e097abed0b8333053c7ba.tar.bz2 myconfigs-6c79fee24c35304d8f1e097abed0b8333053c7ba.zip |
Save working version of annoyme
-rwxr-xr-x | local/bin/annoyme | 33 | ||||
-rwxr-xr-x | local/sbin/annoyme-request | 66 |
2 files changed, 99 insertions, 0 deletions
diff --git a/local/bin/annoyme b/local/bin/annoyme new file mode 100755 index 0000000..8b4abb8 --- /dev/null +++ b/local/bin/annoyme @@ -0,0 +1,33 @@ +#!/bin/bash +# annoyme - script to allow user intervention to otherwise backgrounded process. +# Copyright (C) 2016 Karel Kočí +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +DOT_ANNOYME=~/.annoyme + +for NAME in `ls "$DOT_ANNOYME" | grep -E '.pid$' | sed 's/\.pid$//'`; do + echo -e "\033[0;31m$NAME:\033[0m" `cat "$DOT_ANNOYME/$NAME.desc"` + echo -ne "\033[0;1m Y/n: \033[0;0m" + read + if [[ $REPLY =~ ^[Yy]?$ ]]; then + if $DOT_ANNOYME/$NAME.script > "$DOT_ANNOYME/$NAME.out"; then + kill -SIGUSR1 `cat "$DOT_ANNOYME/$NAME.pid"` + else + kill -SIGUSR2 `cat "$DOT_ANNOYME/$NAME.pid"` + fi + fi + echo +done diff --git a/local/sbin/annoyme-request b/local/sbin/annoyme-request new file mode 100755 index 0000000..a14e358 --- /dev/null +++ b/local/sbin/annoyme-request @@ -0,0 +1,66 @@ +#!/bin/bash +# annoyme - script to allow user intervention to otherwise backgrounded process. +# Copyright (C) 2016 Karel Kočí +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +DOT_ANNOYME=~/.annoyme + +NAME=$1 +EC=2 + +onexit() { + rm -f "$DOT_ANNOYME/$NAME.script" + rm -f "$DOT_ANNOYME/$NAME.pid" + rm -f "$DOT_ANNOYME/$NAME.desc" + rm -f "$DOT_ANNOYME/$NAME.out" + kill $SLEEPID 2>/dev/null + exit $EC +} +trap onexit EXIT INT QUIT TERM ABRT + +mkdir -p $DOT_ANNOYME + +echo "#!/bin/bash" > "$DOT_ANNOYME/$NAME.script" +while read -r LINE; do + echo "$LINE" >> "$DOT_ANNOYME/$NAME.script" +done +chmod +x "$DOT_ANNOYME/$NAME.script" +echo "$$" > "$DOT_ANNOYME/$NAME.pid" +echo "$2" > "$DOT_ANNOYME/$NAME.desc" + +onsuccess() { + echo "User intervention successful." 1>&2 + cat "$DOT_ANNOYME/$NAME.out" + EC=0 + exit +} + +onfailure() { + echo "User intervention failed." 1>&2 + EC=1 + exit +} + +trap onsuccess SIGUSR1 +trap onfailure SIGUSR2 + +echo "Waiting for user intervention using annoyme" 1>&2 +notify-send -a "$NAME" "$NAME: User intervention required" "$2" +sleep 3h & +SLEEPID=$! +wait $SLEEPID +echo "User intervention timed out." 1>&2 +notify-send -a "$NAME" "$NAME: User intervention request timed out." |