X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/59f0d218a6ff34c80cf898f6d7ac62555ba8eb11..88e73ad5335fd07384e8d165d29656a5fab6710e:/packages/termux-api/termux-location diff --git a/packages/termux-api/termux-location b/packages/termux-api/termux-location index 08d05aff..fa840c76 100755 --- a/packages/termux-api/termux-location +++ b/packages/termux-api/termux-location @@ -1,28 +1,50 @@ -#!/system/bin/sh +#!/bin/sh set -e -u -PARAMS="" +SCRIPTNAME=termux-location show_usage () { - echo "usage: termux-location [OPTIONS]" - echo "Get the device location. Options:" - echo " -r, --request kind of request(s) to make [once/last/updates] (default: once)" - echo " -p, --provider location provider [gps/network/passive] (default: gps)" + echo "usage: $SCRIPTNAME [-p provider] [-r request]" + echo "Get the device location." + echo "" + echo " -p provider location provider [gps/network/passive] (default: gps)" + echo " -r request kind of request to make [once/last/updates] (default: once)" + echo "" + exit 0 +} + +validate_provider () { + PROVIDER=$1 + case "$PROVIDER" in + gps) ;; + network) ;; + passive) ;; + *) echo "$SCRIPTNAME: Unsupported provider: '$PROVIDER'"; exit 1;; + esac } -O=`busybox getopt -q -l request: -l provider: -- r:hp: "$@"` -if [ $? != 0 ] ; then show_usage; exit 1 ; fi -eval set -- "$O" -while true; do -case "$1" in - -h|--help) show_usage; exit 0;; - -r|--request) PARAMS="$PARAMS --es request $2"; shift 2;; - -p|--provider) PARAMS="$PARAMS --es provider $2"; shift 2;; - --) shift; break;; - *) echo Error; show_usage; exit 1;; -esac +validate_request () { + REQUEST=$1 + case "$REQUEST" in + once) ;; + last) ;; + updates) ;; + *) echo "$SCRIPTNAME: Unsupported request: '$REQUEST'"; exit 1;; + esac +} + +PARAMS="" + +while getopts :hr:p: option +do + case "$option" in + h) show_usage;; + r) validate_request $OPTARG; PARAMS="$PARAMS --es request $OPTARG";; + p) validate_provider $OPTARG; PARAMS="$PARAMS --es provider $OPTARG";; + ?) echo "$SCRIPTNAME: illegal option -$OPTARG"; exit 1; + esac done +shift $(($OPTIND-1)) -# Too many arguments: -if [ $# != 0 ]; then show_usage; exit 1; fi +if [ $# != 0 ]; then echo "$SCRIPTNAME: too many arguments"; exit 1; fi -termux-api Location $PARAMS +@TERMUX_API@ Location $PARAMS