Skip to content

Commit a949810

Browse files
committed
Align install script to GlobaLeaks implementation
The commit fix issue: #342
1 parent 2fc8647 commit a949810

File tree

1 file changed

+133
-49
lines changed

1 file changed

+133
-49
lines changed

scripts/install.sh

Lines changed: 133 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,123 @@ if [ ! $(id -u) = 0 ]; then
66
exit 1
77
fi
88

9+
# Preliminary Requirements Check
10+
ERR=0
11+
echo "Checking preliminary Tor2web requirements"
12+
for REQ in apt-key apt-get
13+
do
14+
if which $REQ >/dev/null; then
15+
echo " + $REQ requirement meet"
16+
else
17+
ERR=$(($ERR+1))
18+
echo " - $REQ requirement not meet"
19+
fi
20+
done
21+
22+
if [ $ERR -ne 0 ]; then
23+
echo "Error: Found ${ERR} unmet requirements"
24+
exit 1
25+
fi
26+
27+
DO () {
28+
if [ -z "$2" ]; then
29+
EXPECTED_RET=0
30+
else
31+
EXPECTED_RET=$2
32+
fi
33+
if [ -z "$3" ]; then
34+
CMD=$1
35+
else
36+
CMD=$3
37+
fi
38+
echo -n "Running: \"$CMD\"... "
39+
eval $CMD &>${LOGFILE}
40+
41+
STATUS=$?
42+
43+
echo $CMD > $TMPDIR/last_command
44+
echo $STATUS > $TMPDIR/last_status
45+
46+
if [ "$STATUS" -eq "$EXPECTED_RET" ]; then
47+
echo "SUCCESS"
48+
else
49+
echo "FAIL"
50+
echo "Ouch! The installation failed."
51+
echo "COMBINED STDOUT/STDERR OUTPUT OF FAILED COMMAND:"
52+
cat ${LOGFILE}
53+
exit 1
54+
fi
55+
}
56+
957
LOGFILE="./install.log"
1058
ASSUMEYES=0
1159

60+
GLOBALEAKS_PGP_KEY="
61+
-----BEGIN PGP PUBLIC KEY BLOCK-----
62+
Version: GnuPG v1
63+
64+
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
123+
=XU7T
124+
-----END PGP PUBLIC KEY BLOCK-----"
125+
12126
for arg in "$@"; do
13127
shift
14128
case "$arg" in
@@ -21,8 +135,16 @@ done
21135
DISTRO="unknown"
22136
DISTRO_CODENAME="unknown"
23137
if which lsb_release >/dev/null; then
24-
DISTRO="$( lsb_release -is )"
25-
DISTRO_CODENAME="$( lsb_release -cs )"
138+
DISTRO="$(lsb_release -is)"
139+
DISTRO_CODENAME="$(lsb_release -cs)"
140+
REAL_DISTRO=$DISTRO
141+
REAL_DISTRO_CODENAME=$DISTRO_CODENAME
142+
fi
143+
144+
# LinuxMint is based on Ubuntu, if we encounter Mint just allign the Ubuntu version is based upon
145+
if [ "$DISTRO" == "LinuxMint" ]; then
146+
DISTRO="Ubuntu"
147+
DISTRO_CODENAME=$(grep UBUNTU_CODENAME /etc/os-release | sed -e 's/UBUNTU_CODENAME=//')
26148
fi
27149

28150
if echo "$DISTRO_CODENAME" | grep -vqE "^xenial$" ; then
@@ -40,7 +162,7 @@ if echo "$DISTRO_CODENAME" | grep -vqE "^xenial$" ; then
40162
fi
41163
fi
42164

43-
echo "Performing Tor2web installation on $DISTRO - $DISTRO_CODENAME"
165+
echo "Detected OS: $DISTRO - $DISTRO_CODENAME"
44166

45167
# The supported platforms are experimentally more than only Ubuntu as
46168
# publicly communicated to users.
@@ -57,50 +179,9 @@ if echo "$DISTRO_CODENAME" | grep -vqE "^(trusty|xenial|wheezy|jessie)$"; then
57179
DISTRO_CODENAME="xenial"
58180
fi
59181

60-
DO () {
61-
if [ -z "$2" ]; then
62-
RET=0
63-
else
64-
RET=$2
65-
fi
66-
if [ -z "$3" ]; then
67-
CMD=$1
68-
else
69-
CMD=$3
70-
fi
71-
echo -n "Running: \"$CMD\"... "
72-
eval $CMD &>${LOGFILE}
73-
if [ "$?" -eq "$RET" ]; then
74-
echo "SUCCESS"
75-
else
76-
echo "FAIL"
77-
echo "COMBINED STDOUT/STDERR OUTPUT OF FAILED COMMAND:"
78-
cat ${LOGFILE}
79-
exit 1
80-
fi
81-
}
82-
83-
# Preliminary Requirements Check
84-
ERR=0
85-
echo "Checking preliminary Tor2web requirements"
86-
for REQ in apt-key apt-get wget
87-
do
88-
if which $REQ >/dev/null; then
89-
echo " + $REQ requirement meet"
90-
else
91-
ERR=$(($ERR+1))
92-
echo " - $REQ requirement not meet"
93-
fi
94-
done
95-
96-
if [ $ERR -ne 0 ]; then
97-
echo "Error: Found ${ERR} unmet requirements"
98-
exit 1
99-
fi
100-
101182
echo "Adding GlobaLeaks PGP key to trusted APT keys"
102-
TMPFILE=/tmp/globaleaks_key.$RANDOM
103-
DO "wget https://deb.globaleaks.org/globaleaks.asc -O $TMPFILE"
183+
TMPFILE=$TMPDIR/globaleaks_key
184+
echo "$GLOBALEAKS_PGP_KEY" > $TMPFILE
104185
DO "apt-key add $TMPFILE"
105186
DO "rm -f $TMPFILE"
106187

@@ -114,9 +195,12 @@ else
114195
DO "apt-get install software-properties-common -y"
115196
fi
116197

117-
if ! grep -q "^deb .*universe" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
118-
echo "Adding Ubuntu Universe repository"
119-
DO "add-apt-repository 'deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe'"
198+
# try adding universe repo only on Ubuntu
199+
if echo "$DISTRO" | grep -qE "^(Ubuntu)$"; then
200+
if ! grep -q "^deb .*universe" /etc/apt/sources.list /etc/apt/sources.list.d/*; then
201+
echo "Adding Ubuntu Universe repository"
202+
DO "add-apt-repository 'deb http://archive.ubuntu.com/ubuntu $DISTRO_CODENAME universe'"
203+
fi
120204
fi
121205

122206
if [ ! -f /etc/apt/sources.list.d/globaleaks.list ]; then

0 commit comments

Comments
 (0)