mirror of
https://github.com/danog/termux-api-package.git
synced 2025-01-22 13:01:24 +01:00
228bf70487
It just sets the content to empty ("") by default, as if there is no content at all it hangs.
107 lines
4.7 KiB
Bash
Executable File
107 lines
4.7 KiB
Bash
Executable File
#!/data/data/com.termux/files/usr/bin/bash
|
|
set -e -u -f
|
|
|
|
SCRIPTNAME=termux-notification
|
|
show_usage () {
|
|
echo "Usage: termux-notification [options]"
|
|
echo "Display a system notification. Content text is read from stdin or specified using --content."
|
|
echo " --action action action to execute when pressing the notification"
|
|
echo " --button1 text text to show on the first notification button"
|
|
echo " --button1-action action action to execute on the first notification button"
|
|
echo " --button2 text text to show on the second notification button"
|
|
echo " --button2-action action action to execute on the second notification button"
|
|
echo " --button3 text text to show on the third notification button"
|
|
echo " --button3-action action action to execute on the third notification button"
|
|
echo " --content content content to show in the notification. Will take precedence over stdin."
|
|
echo " --id id notification id (will overwrite any previous notification with the same id)"
|
|
echo " --led-color rrggbb color of the blinking led as RRGGBB (default: none)"
|
|
echo " --led-on milliseconds number of milliseconds for the LED to be on while it's flashing (default: 800)"
|
|
echo " --led-off milliseconds number of milliseconds for the LED to be off while it's flashing (default: 800)"
|
|
echo " --on-delete action action to execute when the the notification is cleared"
|
|
echo " --priority prio notification priority (high/low/max/min/default)"
|
|
echo " --sound play a sound with the notification"
|
|
echo " --title title notification title to show"
|
|
echo " --vibrate pattern vibrate pattern, comma separated as in 500,1000,200"
|
|
exit 0
|
|
}
|
|
|
|
OPT_ACTION=""
|
|
OPT_ID=""
|
|
OPT_LED_COLOR=""
|
|
OPT_LED_OFF=""
|
|
OPT_LED_ON=""
|
|
OPT_ON_DELETE_ACTION=""
|
|
OPT_PRIORITY=""
|
|
OPT_SOUND=""
|
|
OPT_TITLE=""
|
|
OPT_VIBRATE=""
|
|
OPT_BUTTON1_TEXT=""
|
|
OPT_BUTTON1_ACTION=""
|
|
OPT_BUTTON2_TEXT=""
|
|
OPT_BUTTON2_ACTION=""
|
|
OPT_BUTTON3_TEXT=""
|
|
OPT_BUTTON3_ACTION=""
|
|
OPT_CONTENT=""
|
|
|
|
TEMP=`busybox getopt \
|
|
-n $SCRIPTNAME \
|
|
-o hc:i:t: \
|
|
--long action:,\
|
|
button1:,button1-action:,\
|
|
button2:,button2-action:,\
|
|
button3:,button3-action:,\
|
|
content:,help,id:,\
|
|
led-color:,led-on:,led-off:,\
|
|
on-delete:,\
|
|
priority:,sound,title:,vibrate: \
|
|
-s bash \
|
|
-- "$@"`
|
|
eval set -- "$TEMP"
|
|
|
|
while true; do
|
|
case "$1" in
|
|
--action) OPT_ACTION="$2"; shift 2;;
|
|
--button1) OPT_BUTTON1_TEXT="$2"; shift 2;;
|
|
--button1-action) OPT_BUTTON1_ACTION="$2"; shift 2;;
|
|
--button2) OPT_BUTTON2_TEXT="$2"; shift 2;;
|
|
--button2-action) OPT_BUTTON2_ACTION="$2"; shift 2;;
|
|
--button3) OPT_BUTTON3_TEXT="$2"; shift 2;;
|
|
--button3-action) OPT_BUTTON3_ACTION="$2"; shift 2;;
|
|
-c | --content) OPT_CONTENT="$2"; shift 2;;
|
|
-h | --help) show_usage;;
|
|
-i | --id) OPT_ID="$2"; shift 2;;
|
|
--led-color) OPT_LED_COLOR="$2"; shift 2;;
|
|
--led-on) OPT_LED_ON="$2"; shift 2;;
|
|
--led-off) OPT_LED_OFF="$2"; shift 2;;
|
|
--on-delete) OPT_ON_DELETE_ACTION="$2"; shift 2;;
|
|
--priority) OPT_PRIORITY="$2"; shift 2;;
|
|
--sound) OPT_SOUND="true"; shift 1;;
|
|
-t | --title) OPT_TITLE="$2"; shift 2;;
|
|
--vibrate) OPT_VIBRATE="$2"; shift 2;;
|
|
--) shift; break ;;
|
|
esac
|
|
done
|
|
|
|
if [ $# != 0 ]; then echo "$SCRIPTNAME: too many arguments"; exit 1; fi
|
|
|
|
set --
|
|
if [ -n "$OPT_ACTION" ]; then set -- "$@" --es action "$OPT_ACTION"; fi
|
|
if [ -n "$OPT_BUTTON1_ACTION" ]; then set -- "$@" --es button_action_1 "$OPT_BUTTON1_ACTION"; fi
|
|
if [ -n "$OPT_BUTTON1_TEXT" ]; then set -- "$@" --es button_text_1 "$OPT_BUTTON1_TEXT"; fi
|
|
if [ -n "$OPT_BUTTON2_ACTION" ]; then set -- "$@" --es button_action_2 "$OPT_BUTTON2_ACTION"; fi
|
|
if [ -n "$OPT_BUTTON2_TEXT" ]; then set -- "$@" --es button_text_2 "$OPT_BUTTON2_TEXT"; fi
|
|
if [ -n "$OPT_BUTTON3_ACTION" ]; then set -- "$@" --es button_action_3 "$OPT_BUTTON3_ACTION"; fi
|
|
if [ -n "$OPT_BUTTON3_TEXT" ]; then set -- "$@" --es button_text_3 "$OPT_BUTTON3_TEXT"; fi
|
|
if [ -n "$OPT_ID" ]; then set -- "$@" --es id "$OPT_ID"; fi
|
|
if [ -n "$OPT_LED_COLOR" ]; then set -- "$@" --es led-color "$OPT_LED_COLOR"; fi
|
|
if [ -n "$OPT_LED_OFF" ]; then set -- "$@" --ei led-off "$OPT_LED_OFF"; fi
|
|
if [ -n "$OPT_LED_ON" ]; then set -- "$@" --ei led-on "$OPT_LED_ON"; fi
|
|
if [ -n "$OPT_ON_DELETE_ACTION" ]; then set -- "$@" --es on_delete_action "$OPT_ON_DELETE_ACTION"; fi
|
|
if [ -n "$OPT_PRIORITY" ]; then set -- "$@" --es priority "$OPT_PRIORITY"; fi
|
|
if [ -n "$OPT_SOUND" ]; then set -- "$@" --ez sound "$OPT_SOUND"; fi
|
|
if [ -n "$OPT_TITLE" ]; then set -- "$@" --es title "$OPT_TITLE"; fi
|
|
if [ -n "$OPT_VIBRATE" ]; then set -- "$@" --ela vibrate "$OPT_VIBRATE"; fi
|
|
|
|
# Note that we want to accept an empty content (--content "").
|
|
echo ${OPT_CONTENT:=""} | /data/data/com.termux/files/usr/libexec/termux-api Notification "$@"
|