summary refs log tree commit diff
path: root/bin/xdg-open
blob: c26df0f34d094df25d2aca78784988b088cee26b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/sh

set -e

arg0="$(basename "$0")"

container=${container:-}
if [ ! "${container}" = "firejail" ]; then
	exec /usr/bin/"${arg0}" $@
fi

portal() {
	if [ $# -lt 1 ]; then
		printf "missing argument\n" >&2
		exit 1
	fi
	exec gdbus call --session \
		--dest org.freedesktop.portal.Desktop \
		--object-path "/org/freedesktop/portal/desktop" \
		--method org.freedesktop.portal.OpenURI.OpenURI \
		"" "$1" "{}"
}

case "$(basename "$0")" in
xdg-open) portal $@ ;;
gio) if [ ! "$1" = "open" ]; then exec /usr/bin/$arg0 $@; else portal "${2}"; fi ;;
esac