commit f10b05de71503ef51dcceb16705c52ee362da86b parent eafbfe2e4f346080c3a21ea61d1654888be8d5ac Author: bdmfegys@duck.com <bdmfegys@duck.com> Date: Sat, 27 Apr 2024 21:09:02 -0400 add extras folder Diffstat:
| A | extras/notify-send | | | 81 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 81 insertions(+), 0 deletions(-)
diff --git a/extras/notify-send b/extras/notify-send @@ -0,0 +1,81 @@ +#!/bin/sh +# Shell script to redirect notify-send calls to herbe. The purpose is to ignore +# options passed to notify-send. +# +# Option parser generated by getoptions +# URL: https://github.com/ko1nksm/getoptions +# LICENSE: Creative Commons Zero v1.0 Universal + +usage() { + printf '%s\n' "${0##*/}: notify-send replacement for herbe" "accepts but ignores all notify-send options." +} + +REST='' +parse() { + OPTIND=$(($#+1)) + while [ $# -gt 0 ] && OPTARG=; do + case $1 in + --?*=*) OPTARG=$1; shift + eval 'set -- "${OPTARG%%\=*}" "${OPTARG#*\=}"' ${1+'"$@"'} + ;; + -[utich]?*) OPTARG=$1; shift + eval 'set -- "${OPTARG%"${OPTARG#??}"}" "${OPTARG#??}"' ${1+'"$@"'} + ;; + -[!-]?*) OPTARG=$1; shift + eval 'set -- "${OPTARG%"${OPTARG#??}"}" "-${OPTARG#??}"' ${1+'"$@"'} + OPTARG= ;; + esac + case $1 in + -u | --urgency) + [ $# -le 1 ] && set -- "$1" required && break + OPTARG=$2 + _=$OPTARG + shift ;; + -t | --expire-time) + [ $# -le 1 ] && set -- "$1" required && break + OPTARG=$2 + _=$OPTARG + shift ;; + -i | --icon) + [ $# -le 1 ] && set -- "$1" required && break + OPTARG=$2 + _=$OPTARG + shift ;; + -c | --category) + [ $# -le 1 ] && set -- "$1" required && break + OPTARG=$2 + _=$OPTARG + shift ;; + -h | --hint) + [ $# -le 1 ] && set -- "$1" required && break + OPTARG=$2 + _=$OPTARG + shift ;; + -? | --help) + usage + exit 0 ;; + --) shift + while [ $# -gt 0 ]; do + REST="${REST} \"\${$(($OPTIND-$#))}\"" + shift + done + break ;; + [-]?*) set -- "$1" unknown && break ;; + *) REST="${REST} \"\${$(($OPTIND-$#))}\"" + esac + shift + done + [ $# -eq 0 ] && return 0 + case $2 in + unknown) echo "unrecognized option '$1'" ;; + noarg) echo "option '$1' doesn't allow an argument" ;; + required) echo "option '$1' requires an argument" ;; + pattern) echo "option '$1' does not match the pattern ($3)" ;; + *) echo "option '$1' validation error: $2" + esac >&2 + exit 1 +} + +parse "$@" +eval set -- "$REST" +herbe "$@" &