php: Update from 7.1.1 to 7.1.2 and enable pcntl
[termux-packages] / packages / termux-api / termux-notification
index f2da7c8..dc77f29 100755 (executable)
@@ -1,51 +1,69 @@
-#!/bin/bash
+#!/data/data/com.termux/files/usr/bin/bash
 set -e -u
 
 SCRIPTNAME=termux-notification
 show_usage () {
-    echo "Usage: termux-notification [-c content] [-i id] [-t title] [-u url]"
-    echo "Display a system notification."
-    echo ""
-    echo "  -c,--content content  notification content to show"
-    echo "  -i id                 notification id (will overwrite any previous notification with the same id)"
-    echo "  --led-color           color of the blinking led as RRGGBB (default: none)"
-    echo "  --led-on              number of milliseconds for the LED to be on while it's flashing (default: 800)"
-    echo "  --led-off             number of milliseconds for the LED to be off while it's flashing (default: 800)"
-    echo "  --priority            notification priority (high/low/max/min/default)"
-    echo "  --sound               play a sound with the notification"
-    echo "  -t,--title title      notification title to show"
-    echo "  -u url                notification url when clicking on it"
-    echo "  --vibrate pattern     vibrate pattern, comma separated as in 500,1000,200"
-    echo ""
+    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=""
+OPT_ACTION=""
 OPT_ID=""
-ARG_T=""
-OPT_T=""
-ARG_U=""
-OPT_U=""
-OPT_PRIORITY=""
 OPT_LED_COLOR=""
-OPT_LED_ON=""
 OPT_LED_OFF=""
-OPT_VIBRATE=""
+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=""
 
 TEMP=`busybox getopt \
      -n $SCRIPTNAME \
-     -o hc:i:t:u: \
-     --long content:,help,id:,led-color:,led-on:,led-off:,priority:,sound,vibrate: \
+     -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
-               -c | --content) ARG_C="--es content"; OPT_C="$2"; CONTENT_OR_TITLE_SET=yes; shift 2;;
+               --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;;
@@ -53,8 +71,7 @@ while true; do
                --led-off) OPT_LED_OFF="$2"; shift 2;;
                --priority) OPT_PRIORITY="$2"; shift 2;;
                --sound) OPT_SOUND="true"; shift 1;;
-               -t | --title) ARG_T="--es title"; OPT_T="$2"; CONTENT_OR_TITLE_SET=yes; shift 2;;
-               -u) ARG_U="--es url"; OPT_U="$2"; shift 2;;
+               -t | --title) OPT_TITLE="$2"; shift 2;;
                --vibrate) OPT_VIBRATE="$2"; shift 2;;
                --) shift; break ;;
        esac
@@ -62,21 +79,26 @@ done
 
 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 "$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 "$ARG_T" ]; then set -- "$@" $ARG_T "$OPT_T"; fi
-if [ -n "$ARG_U" ]; then set -- "$@" $ARG_U "$OPT_U"; fi
 if [ -n "$OPT_LED_COLOR" ]; then set -- "$@" --es led-color "$OPT_LED_COLOR"; fi
-if [ -n "$OPT_LED_ON" ]; then set -- "$@" --ei led-on "$OPT_LED_ON"; 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