-
Notifications
You must be signed in to change notification settings - Fork 0
/
-install.sh
72 lines (54 loc) · 1.8 KB
/
-install.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
#!/bin/bash
result_url=$(curl $inputLink -s -L -I -o /dev/null -w '%{url_effective}')
echo "reading... $result_url"
APP_ID=$([[ $result_url =~ ^https?:\/\/([^\/]*).*$ ]] && echo ${BASH_REMATCH[1]})
if ! [[ $result_url =~ ^https:\/\/ ]]; then
echo "NOT SECURE!!"
exit 1 # not https
fi
URL="https://${APP_ID}"
TITLE=$(curl -sL ${URL} | perl -l -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si')
DOMAIN=$([[ $APP_ID =~ ^(.*\.)?([^\.]+\.[^\.]+)$ ]] && echo ${BASH_REMATCH[2]})
TITLE="$TITLE | $DOMAIN"
echo "App title: $TITLE"
APP_PATH=$ASSETS_DIR/$DOMAIN
ICON=$APP_PATH/$APP_ID-icon.ico
DESKTOP_FILE=${APP_PATH}/$APP_ID-launcher.desktop
TEMPLATE=${ROOT}/${CNF_TEMPLATE}
rm -rf $APP_PATH
mkdir $APP_PATH
curl -s ${URL}/favicon.ico --output ${ICON}
# Load templates
# OS template
if [ ! -z $CNF_OS_TEMPLATE ]; then
{ #try
source "$ROOT/platforms/$CNF_OS_TEMPLATE/$TEMPLATE_INSTALL_SCRIPT"
} || { #catch
echo "Failed to load templates for $CNF_OS_TEMPLATE"
}
fi
# Browser template
if [ ! -z $CNF_BROWSER_TEMPLATE ]; then
{ #try
source "$ROOT/activators/$CNF_BROWSER_TEMPLATE/$TEMPLATE_INSTALL_SCRIPT"
} || { #catch
echo "Failed to load templates for $CNF_BROWSER_TEMPLATE"
}
fi
EXEC="${CNF_EXEC}${URL}"
echo "Installing $APP_ID"
echo "launch command: $EXEC"
# seed desktop file template and save to install folder
while read line; do
while [[ "$line" =~ (\$\{[a-zA-Z_][a-zA-Z_0-9]*\}) ]]; do
LHS=${BASH_REMATCH[1]}
RHS="$(eval echo "\"$LHS\"")"
line=${line//$LHS/$RHS}
done
echo "$line" >>${DESKTOP_FILE}
done <$TEMPLATE
chmod +x ${DESKTOP_FILE}
desktop_dest=$(eval "readlink -f ${CNF_DESKTOP_DEST}")
echo "Adding desktop file to ${desktop_dest}"
# ls "${desktop_dest}/"
cp ${DESKTOP_FILE} ${desktop_dest}/${APP_ID}.desktop