Browse Source

Make run.sh more robust

tags/v1.0.2^2
9seconds 6 years ago
parent
commit
a65cb05d20
1 changed files with 21 additions and 11 deletions
  1. 21
    11
      run.sh

+ 21
- 11
run.sh View File

@@ -11,11 +11,23 @@
11 11
 #   export MTG_IMAGENAME="nineseconds/mtg:latest"
12 12
 #   curl -sfL --compressed https://raw.githubusercontent.com/9seconds/mtg/master/run.sh | bash
13 13
 
14
-set -eu -o pipefail
14
+set -eu
15 15
 
16 16
 export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
17 17
 export MTG_CONFIG="${MTG_CONFIG:-$XDG_CONFIG_HOME/mtg}"
18 18
 
19
+if ! [ -x "$(command -v docker)" ]; then
20
+    echo 'Error: docker is not installed.' >&2
21
+    exit 1
22
+fi
23
+
24
+id -Gn "$USER" | grep -qw 'docker' > /dev/null
25
+if [ $? -eq 0 ] || [ "$(id -u)" -eq '0' ]; then
26
+    DOCKER_CMD="$(command -v docker)"
27
+else
28
+    DOCKER_CMD="sudo $(command -v docker)"
29
+fi
30
+
19 31
 mkdir -p "$MTG_CONFIG" || true
20 32
 
21 33
 MTG_SECRET="$MTG_CONFIG/secret"
@@ -26,33 +38,31 @@ if [ ! -f "$MTG_ENV" ]; then
26 38
     MTG_PORT="${MTG_PORT:-3128}"
27 39
     MTG_CONTAINER="${MTG_CONTAINER:-mtg}"
28 40
 
29
-    echo "MTG_IMAGENAME=${MTG_IMAGENAME}" > "$MTG_ENV"
30
-    echo "MTG_PORT=${MTG_PORT}" >> "$MTG_ENV"
31
-    echo "MTG_CONTAINER=${MTG_CONTAINER}" >> "$MTG_ENV"
41
+    echo "MTG_IMAGENAME=$MTG_IMAGENAME" > "$MTG_ENV"
42
+    echo "MTG_PORT=$MTG_PORT" >> "$MTG_ENV"
43
+    echo "MTG_CONTAINER=$MTG_CONTAINER" >> "$MTG_ENV"
32 44
 fi
33 45
 
34 46
 set -a
35 47
 source "$MTG_ENV"
36 48
 set +a
37 49
 
38
-docker pull "$MTG_IMAGENAME"
50
+$DOCKER_CMD pull "$MTG_IMAGENAME" > /dev/null
39 51
 if [ ! -f "$MTG_SECRET" ]; then
40
-    docker run \
52
+    $DOCKER_CMD run \
41 53
             --rm \
42 54
             "$MTG_IMAGENAME" \
43 55
         generate-secret tls -c "$(openssl rand -hex 16).com" \
44 56
     > "$MTG_SECRET"
45 57
 fi
46 58
 
47
-echo
48 59
 echo "Proxy secret is $(cat "$MTG_SECRET"). Port is $MTG_PORT."
49
-echo
50 60
 
51
-docker ps --filter "Name=$MTG_CONTAINER" -aq | xargs -r docker rm -fv
52
-docker run \
61
+$DOCKER_CMD ps --filter "Name=$MTG_CONTAINER" -aq | xargs -r $DOCKER_CMD rm -fv > /dev/null
62
+$DOCKER_CMD run \
53 63
         -d \
54 64
         --restart=unless-stopped \
55 65
         --name "$MTG_CONTAINER" \
56 66
         --ulimit nofile=51200:51200 \
57 67
         -p "$MTG_PORT:3128" \
58
-    "$MTG_IMAGENAME" run "$(cat "$MTG_SECRET")"
68
+    "$MTG_IMAGENAME" run "$(cat "$MTG_SECRET")" > /dev/null

Loading…
Cancel
Save