forked from blavenie/ionic4-starter-app
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathinstall.sh
executable file
·102 lines (83 loc) · 2.47 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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/bin/bash
{ # this ensures the entire script is downloaded #
is_installed() {
type "$1" > /dev/null 2>&1
}
if [[ "_$1" != "_" ]]; then
INSTALL_DIR="$1"
fi
if [[ "_$INSTALL_DIR" == "_" ]]; then
DIRNAME=`pwd`
INSTALL_DIR="$DIRNAME/sumaris-app"
fi
latest_version() {
echo "2.9.25.8" #lastest
}
api_release_url() {
echo "https://api.github.com/repos/sumaris-net/sumaris-app/releases/tags/$(latest_version)"
}
download() {
if is_installed "curl"; then
curl -qkL $*
elif is_installed "wget"; then
# Emulate curl with wget
ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \
-e 's/-L //' \
-e 's/-I /--server-response /' \
-e 's/-s /-q /' \
-e 's/-o /-O /' \
-e 's/-C - /-c /')
wget ${ARGS}
fi
}
install_from_github() {
local RELEASE=`curl -XGET -i $(api_release_url)`
local ARCHIVE_URL=`echo "$RELEASE" | grep -P "\"browser_download_url\": \"[^\"]+" | grep -oP "https://[a-zA-Z0-9/.-]+-web.zip"`
local TMP_DIR=/tmp/sumaris-app-install
local ARCHIVE_FILE=${TMP_DIR}/sumaris-app-$(latest_version)-web.zip
if [[ -d "$INSTALL_DIR" ]]; then
if [[ -f "$ARCHIVE_FILE" ]]; then
echo "WARNING: Deleting existing archive [$ARCHIVE_FILE]"
rm ${ARCHIVE_FILE}
fi
else
mkdir -p "$INSTALL_DIR"
fi
if [[ -d "${TMP_DIR}" ]]; then
echo "WARNING: Deleting existing temp directory [$TMP_DIR]"
rm -rf ${TMP_DIR}
fi
mkdir -p "$TMP_DIR"
echo "Downloading [$ARCHIVE_URL]"
download "$ARCHIVE_URL" -o "$ARCHIVE_FILE" || {
echo >&2 "Failed to download '$ARCHIVE_URL'"
return 4
}
echo "Unarchive to $INSTALL_DIR"
unzip -o ${ARCHIVE_FILE} -d ${TMP_DIR}
cp -rf ${TMP_DIR}/* ${INSTALL_DIR}
rm -rf ${TMP_DIR}
echo
echo "Successfully installed at ${INSTALL_DIR}"
}
do_install() {
if ! is_installed "curl"; then
echo "=> curl is not available. You will likely need to install 'curl' package."
exit 1
fi
if ! is_installed "unzip"; then
echo "=> unzip is not available. You will likely need to install 'unzip' package."
exit 1
fi
install_from_github
}
#
# Unsets the various functions defined
# during the execution of the install script
#
reset() {
unset -f reset is_installed latest_version \
download install_from_github do_install
}
[[ "_$SUMARIS_ENV" = "_testing" ]] || do_install $1
} # this ensures the entire script is downloaded #