X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/8d6e165f624a809cf51cf8f30ae0e268904612d0..6788ea2c5d7dbb05b18c9da41b1f88f9d4400c2a:/packages/termux-api/termux-notification diff --git a/packages/termux-api/termux-notification b/packages/termux-api/termux-notification index 34a5aab3..dc77f29c 100755 --- a/packages/termux-api/termux-notification +++ b/packages/termux-api/termux-notification @@ -1,52 +1,104 @@ -#!/bin/sh +#!/data/data/com.termux/files/usr/bin/bash set -e -u SCRIPTNAME=termux-notification show_usage () { - echo "Usage: termux-notification [OPTIONS]" - echo "Display a system notification." - echo "" - echo " -c notification content to show" - echo " -i notification id (will overwrite the previous notification with the same id)" - echo " -t notification title to show" - echo " -u <url> notification url when clicking on it" - exit 1 + echo "Usage: termux-notification [options]" + echo "Display a system notification. Context 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 contnet to show in the notification. Read from stdin not specified here." + 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 " --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 } -CONTENT_OR_TITLE_SET=no -ARG_C="" -OPT_C="" -ARG_I="" -OPT_I="" -ARG_T="" -OPT_T="" -ARG_U="" -OPT_U="" +OPT_ACTION="" +OPT_ID="" +OPT_LED_COLOR="" +OPT_LED_OFF="" +OPT_LED_ON="" +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="" -while getopts :hc:i:t:u: option -do - case "$option" in - h) show_usage;; - c) ARG_C="--es content"; OPT_C="$OPTARG"; CONTENT_OR_TITLE_SET=yes;; - i) ARG_I="--es id"; OPT_I="$OPTARG";; - t) ARG_T="--es title"; OPT_T="$OPTARG"; CONTENT_OR_TITLE_SET=yes;; - u) ARG_U="--es url"; OPT_U="$OPTARG";; - ?) echo "$SCRIPTNAME: illegal option -$OPTARG"; exit 1; +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:,\ +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;; + --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 -shift $(($OPTIND-1)) if [ $# != 0 ]; then echo "$SCRIPTNAME: too many arguments"; exit 1; fi -if [ $CONTENT_OR_TITLE_SET = "no" ]; then - echo "$SCRIPTNAME: no title or content set" - exit 1 -fi - set -- -if [ -n "$ARG_C" ]; then set -- "$@" $ARG_C "$OPT_C"; fi -if [ -n "$ARG_I" ]; then set -- "$@" $ARG_I "$OPT_I"; fi -if [ -n "$ARG_T" ]; then set -- "$@" $ARG_T "$OPT_T"; fi -if [ -n "$ARG_U" ]; then set -- "$@" $ARG_U "$OPT_U"; fi +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_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 -@TERMUX_API@ Notification "$@" +if [ -v OPT_CONTENT ]; then + # Note that we want to accept an empty content (--content ""). + echo ${OPT_CONTENT:=""} | /data/data/com.termux/files/usr/libexec/termux-api Notification "$@" +else + /data/data/com.termux/files/usr/libexec/termux-api Notification "$@" +fi