You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.3 KiB

#!/data/data/com.termux/files/usr/bin/sh
set -e -u
SCRIPTNAME=termux-open
show_usage () {
echo "Usage: $SCRIPTNAME [options] path-or-url"
echo "Open a file or URL in an external app."
echo " --send if the file should be shared for sending"
echo " --view if the file should be shared for viewing (default)"
echo " --chooser if an app chooser should always be shown"
echo " --content-type type specify the content type to use"
exit 0
}
TEMP=`busybox getopt \
-n $SCRIPTNAME \
-o h \
--long send,view,chooser,content-type:,help\
-- "$@"`
eval set -- "$TEMP"
ACTION=android.intent.action.VIEW
EXTRAS=""
while true; do
case "$1" in
--send) ACTION="android.intent.action.SEND"; shift;;
--view) ACTION="android.intent.action.VIEW"; shift;;
--chooser) EXTRAS="$EXTRAS --ez chooser true"; shift;;
--content-type) EXTRAS="$EXTRAS --es content-type $2"; shift 2;;
-h | --help) show_usage;;
--) shift; break ;;
esac
done
if [ $# != 1 ]; then
show_usage
fi
FILE="$1"
if [ -f "$FILE" ]; then
FILE=`realpath "$FILE"`
fi
# Fix for issues on Android 8.1.
FILE=$(echo "$FILE" | sed 's/^\///')
am broadcast --user 0 \
-a $ACTION \
-n com.termux/com.termux.app.TermuxOpenReceiver \
$EXTRAS \
-d "$FILE" \
> /dev/null