blob: d41e6dd6cbb70eb9fa61a7c1df711a4360b90684 (
plain)
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
|
#!/bin/bash
# Register a protocol handler (default: handle_secondlifeprotocol.sh) for
# URLs of the form secondlife://...
#
HANDLER="$1"
SCRIPTSRC=`readlink -f "$0" || echo "$0"`
RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
install_prefix="$(realpath -- "${RUN_PATH}/..")"
cd "${RUN_PATH}/.."
if [ -z "$HANDLER" ]; then
HANDLER=$install_prefix/etc/handle_secondlifeprotocol.sh
fi
function install_desktop_entry()
{
local installation_prefix="$1"
local desktop_entries_dir="$2"
local desktop_entry="\
[Desktop Entry]\n\
Name=Second Life SLURL handler\n\
Path=${installation_prefix}\n\
Exec=${HANDLER} %u\n\
Icon=${installation_prefix}/secondlife_icon.png\n\
Terminal=false\n\
Type=Application\n\
StartupNotify=true\n\
StartupWMClass="com.secondlife.indra.viewer"\n\
NoDisplay=true\n\
MimeType=x-scheme-handler/secondlife\n\
X-Desktop-File-Install-Version=3.0"
echo " - Installing protocol entries in ${desktop_entries_dir}"
WORK_DIR=`mktemp -d`
PROTOCOL_HANDLER="secondlife-protocol.desktop"
echo -e $desktop_entry > "${WORK_DIR}/${PROTOCOL_HANDLER}" || "Failed to create desktop file!"
desktop-file-install --dir="${desktop_entries_dir}" "${WORK_DIR}/${PROTOCOL_HANDLER}" || "Failed to install desktop file!"
rm -r $WORK_DIR
xdg-mime default "${desktop_entries_dir}/${PROTOCOL_HANDLER}" x-scheme-handler/secondlife
update-desktop-database "${desktop_entries_dir}"
}
if [ "$UID" == "0" ]; then
# system-wide
install_desktop_entry "$install_prefix" /usr/local/share/applications
else
# user-specific
install_desktop_entry "$install_prefix" "$HOME/.local/share/applications"
fi
|