SCRIPTNAME=termux-toast show_usage () { echo"Usage: termux-toast [-b bgcolor] [-c color] [-g gravity] [-s] [text]" echo"Show text in a Toast (a transient popup)." echo"The toast text is either supplied as arguments or read from stdin" echo"if no arguments are given. Arguments will take precedence over stdin." echo"If toast text is not passed as arguments or with stdin, then there will" echo"be a 3s delay." echo" -h show this help" echo" -b set background color (default: gray)" echo" -c set text color (default: white)" echo" -g set position of toast: [top, middle, or bottom] (default: middle)" echo" -s only show the toast for a short while" echo"NOTE: color can be a standard name (i.e. red) or 6 / 8 digit hex value (i.e. \"#FF0000\" or \"#FFFF0000\") where order is (AA)RRGGBB. Invalid color will revert to default value" exit 0 }
PARAMS="" whilegetopts :hsc:b:g: option do case"$option"in h) show_usage;; s) PARAMS+=" --ez short true";; c) PARAMS+=" --es text_color $OPTARG";; b) PARAMS+=" --es background $OPTARG";; g) PARAMS+=" --es gravity $OPTARG";; ?) echo"$SCRIPTNAME: illegal option -$OPTARG"; exit 1; esac done shift $((OPTIND-1))
# If toast text was not passed as an argument, then attempt to read from STDIN with a 3s timeout # Toast text arguments takes precedence over STDIN if [ $# = 0 ]; then set +e; IFS= read -t 3 -r -d '' TOAST_TEXT; set -e; else TOAST_TEXT="$*" fi
# Trim trailing newlines TOAST_TEXT="$(echo "$TOAST_TEXT")"
// Try to connect over the listen socket first if running on Android `< 14`. // On Android `>= 14`, if termux-api app process was started previously // and it started the socket server, but later Android froze the // process, the socket will still be connectable, but no response // will be received until the app process is unfrozen agin and // `read()` call below will hang indefinitely until that happens, // so use legacy `am broadcast` command, which will also unfreeze // the app process to deliver the intent. // - https://github.com/termux/termux-api/issues/638#issuecomment-1813233924
SCRIPTNAME=termux-usb show_usage () { echo"Usage: $SCRIPTNAME [-l | [-r] [-E] [-e command] [device | vendorId productId]]" echo"List or access USB devices. Devices cannot be accessed directly," echo" only using $SCRIPTNAME." echo" -l list available devices" echo" -r show permission request dialog if necessary" echo" -e command execute the specified command with a file descriptor" echo" referring to the device as an argument (unless -E" echo" argument is given)" echo" -E transfer file descriptor as env var instead of as" echo" command line argument" exit 0 }
if [ "$ACTION" == "list" ] then if [ $# -gt 0 ]; thenecho"$SCRIPTNAME: too many arguments"; exit 1; fi else if [ $# -lt 1 ]; then echo"$SCRIPTNAME: missing -l or device path" exit 1 elif [ $# -eq 1 ]; then # The device's usbfs path has been provided PARAMS="$PARAMS --es device $1" elif [ $# -eq 2 ]; then # A vendorId and ProductId of the device has been provided PARAMS="$PARAMS --es vendorId $1" PARAMS="$PARAMS --es productId $2" else echo"$SCRIPTNAME: too many arguments" exit 1 fi fi echo"TERMUX_CALLBACK:$TERMUX_CALLBACK" echo"TERMUX_EXPORT_FD:$TERMUX_EXPORT_FD" CMD="termux-api Usb -a $ACTION$PARAMS" termux-toast "CMD:$CMD" echo"CMD:$CMD"
if [ "$ACTION" == "permission" ] then if [ "$($CMD)" == "yes" ] then echo"Access granted." exit 0 else echo"Access denied." exit 1 fi else $CMD fi