-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathopen.sh
executable file
·79 lines (65 loc) · 1.83 KB
/
open.sh
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
if [[ "$@" =~ "https://" ]] || [[ "$@" =~ "http://" ]]; then
echo "[Info] Received a request: $@, interpreting as link"
/usr/lib/flatpak-xdg-utils/xdg-open "$@"
exit $?
fi
if [[ $1 =~ "/" ]]; then
export origReq="$1"
fi
if [[ $2 =~ "/" ]]; then
export origReq="$2"
fi
if [ ${trashAppUnsafe} ]; then
link="${origReq}"
xdg-open "${origReq}"
exit $?
fi
if [[ $(echo ${origReq} | cut -c '1-8') =~ 'file://' ]]; then
echo "Received a request with file://: ${origReq}"
export origReq="$(echo ${origReq} | sed 's|file:///|/|g')"
echo "Decoding path as: ${origReq}"
else
export origReq="$(realpath ${origReq})"
fi
if [ ! -z ${bwBindPar} ]; then
export bwBindPar="$(realpath ${bwBindPar})"
echo "bwBindPar set to ${bwBindPar}"
fi
if [[ "${origReq}" =~ "${bwBindPar}" ]] && [ ! -z ${bwBindPar} ]; then
echo "[Warn] Request is in bwBindPar!"
export link="/proc/$(cat ~/mainPid)/root${origReq}"
else
ln \
-sfr \
${origReq} ~/Shared
link="${XDG_DATA_HOME}/${stateDirectory}/Shared/$(basename ${origReq})"
fi
echo "[Info] received a request: $@, translated to ${link}"
# if [[ ${portableUsePortal} = 1 ]]; then
# /usr/lib/flatpak-xdg-utils/xdg-open $(dirname "${link}")
# if [[ $? = 0 ]]; then
# exit 0
# fi
# fi
echo "[Info] Initiating D-Bus call..."
dbus-send --print-reply --dest=org.freedesktop.FileManager1 \
/org/freedesktop/FileManager1 \
org.freedesktop.FileManager1.ShowItems \
array:string:"file://${link}" \
string:fake-dde-show-items
if [[ $? = 0 ]]; then
exit 0
fi
/usr/lib/flatpak-xdg-utils/xdg-open $(dirname "${link}")
if [[ $? = 0 ]]; then
exit 0
fi
if [ -f /usr/bin/dolphin ] && [ ${XDG_CURRENT_DESKTOP} = KDE ]; then
/usr/bin/dolphin --select "${link}"
elif [ -f /usr/bin/nautilus ] && [ ${XDG_CURRENT_DESKTOP} = GNOME ]; then
/usr/bin/nautilus $(dirname "${link}")
else
xdg-open $(dirname "${link}")
fi
fi