radare2: Update from 1.0.2 to 1.1.0
[termux-packages] / packages / termux-api / termux-notification
index d186d5f..f2da7c8 100755 (executable)
@@ -1,38 +1,82 @@
-#!/bin/sh
+#!/bin/bash
+set -e -u
 
-set -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 ""
+    exit 0
+}
 
-PARAMS=""
 CONTENT_OR_TITLE_SET=no
+ARG_C=""
+OPT_C=""
+OPT_ID=""
+ARG_T=""
+OPT_T=""
+ARG_U=""
+OPT_U=""
+OPT_PRIORITY=""
+OPT_LED_COLOR=""
+OPT_LED_ON=""
+OPT_LED_OFF=""
+OPT_VIBRATE=""
+OPT_SOUND=""
 
-SCRIPTNAME=$0
-show_usage () {
-       echo "usage: termux-notification [OPTIONS]"
-       echo "Display a notification. Options:"
-       echo "  -c, --content <content>      notification content to show"
-       echo "  -i, --id <id>                notification id (will overwrite the previous notification with the same id)"
-       echo "  -t, --title <title>          notification title to show"
-       echo "  -u, --url <url>              notification url when clicking on it"
-}
+TEMP=`busybox getopt \
+     -n $SCRIPTNAME \
+     -o hc:i:t:u: \
+     --long content:,help,id:,led-color:,led-on:,led-off:,priority:,sound,vibrate: \
+     -s bash \
+     -- "$@"`
+eval set -- "$TEMP"
 
-O=`busybox getopt -q -l content: -l help -l title: -l id: -l url: -- c:hi:t:u: "$@"`
-if [ $? != 0 ] ; then show_usage; exit 1 ; fi
-eval set -- "$O"
 while true; do
-case "$1" in
-       -c|--content) PARAMS="$PARAMS --es content $2"; CONTENT_OR_TITLE_SET=yes; shift 2;;
-       -h|--help) show_usage; exit 0;;
-       -i|--id) PARAMS="$PARAMS --es id $2"; shift 2;;
-       -t|--title) PARAMS="$PARAMS --es title $2"; CONTENT_OR_TITLE_SET=yes; shift 2;;
-       -u|--url) PARAMS="$PARAMS --es url $2"; shift 2;;
-       --)     shift; break;;
-       *)      echo Error; exit 1;;
-esac
+       case "$1" in
+               -c | --content) ARG_C="--es content"; OPT_C="$2"; CONTENT_OR_TITLE_SET=yes; 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) ARG_T="--es title"; OPT_T="$2"; CONTENT_OR_TITLE_SET=yes; shift 2;;
+               -u) ARG_U="--es url"; OPT_U="$2"; shift 2;;
+               --vibrate) OPT_VIBRATE="$2"; shift 2;;
+               --) shift; break ;;
+       esac
 done
 
+if [ $# != 0 ]; then echo "$SCRIPTNAME: too many arguments"; exit 1; fi
+
 if [ $CONTENT_OR_TITLE_SET = "no" ]; then
-       show_usage
-       exit 1;
-fi;
+       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_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_PRIORITY" ]; then set -- "$@" --es priority "$OPT_PRIORITY"; fi
+if [ -n "$OPT_SOUND" ]; then set -- "$@" --ez sound "$OPT_SOUND"; fi
+if [ -n "$OPT_VIBRATE" ]; then set -- "$@" --ela vibrate "$OPT_VIBRATE"; fi
 
-@TERMUX_API@ Notification $PARAMS
+@TERMUX_API@ Notification "$@"