From a65cb05d2033db2b57567706f9fc6c047706cb2c Mon Sep 17 00:00:00 2001 From: 9seconds Date: Mon, 25 Nov 2019 10:31:19 +0300 Subject: [PATCH 1/2] Make run.sh more robust --- run.sh | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/run.sh b/run.sh index 64e5206..2f89f82 100755 --- a/run.sh +++ b/run.sh @@ -11,11 +11,23 @@ # export MTG_IMAGENAME="nineseconds/mtg:latest" # curl -sfL --compressed https://raw.githubusercontent.com/9seconds/mtg/master/run.sh | bash -set -eu -o pipefail +set -eu export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}" export MTG_CONFIG="${MTG_CONFIG:-$XDG_CONFIG_HOME/mtg}" +if ! [ -x "$(command -v docker)" ]; then + echo 'Error: docker is not installed.' >&2 + exit 1 +fi + +id -Gn "$USER" | grep -qw 'docker' > /dev/null +if [ $? -eq 0 ] || [ "$(id -u)" -eq '0' ]; then + DOCKER_CMD="$(command -v docker)" +else + DOCKER_CMD="sudo $(command -v docker)" +fi + mkdir -p "$MTG_CONFIG" || true MTG_SECRET="$MTG_CONFIG/secret" @@ -26,33 +38,31 @@ if [ ! -f "$MTG_ENV" ]; then MTG_PORT="${MTG_PORT:-3128}" MTG_CONTAINER="${MTG_CONTAINER:-mtg}" - echo "MTG_IMAGENAME=${MTG_IMAGENAME}" > "$MTG_ENV" - echo "MTG_PORT=${MTG_PORT}" >> "$MTG_ENV" - echo "MTG_CONTAINER=${MTG_CONTAINER}" >> "$MTG_ENV" + echo "MTG_IMAGENAME=$MTG_IMAGENAME" > "$MTG_ENV" + echo "MTG_PORT=$MTG_PORT" >> "$MTG_ENV" + echo "MTG_CONTAINER=$MTG_CONTAINER" >> "$MTG_ENV" fi set -a source "$MTG_ENV" set +a -docker pull "$MTG_IMAGENAME" +$DOCKER_CMD pull "$MTG_IMAGENAME" > /dev/null if [ ! -f "$MTG_SECRET" ]; then - docker run \ + $DOCKER_CMD run \ --rm \ "$MTG_IMAGENAME" \ generate-secret tls -c "$(openssl rand -hex 16).com" \ > "$MTG_SECRET" fi -echo echo "Proxy secret is $(cat "$MTG_SECRET"). Port is $MTG_PORT." -echo -docker ps --filter "Name=$MTG_CONTAINER" -aq | xargs -r docker rm -fv -docker run \ +$DOCKER_CMD ps --filter "Name=$MTG_CONTAINER" -aq | xargs -r $DOCKER_CMD rm -fv > /dev/null +$DOCKER_CMD run \ -d \ --restart=unless-stopped \ --name "$MTG_CONTAINER" \ --ulimit nofile=51200:51200 \ -p "$MTG_PORT:3128" \ - "$MTG_IMAGENAME" run "$(cat "$MTG_SECRET")" + "$MTG_IMAGENAME" run "$(cat "$MTG_SECRET")" > /dev/null From 6b9601fc2c89f53ed3c8dfad32bf372444a58453 Mon Sep 17 00:00:00 2001 From: 9seconds Date: Mon, 25 Nov 2019 10:31:40 +0300 Subject: [PATCH 2/2] Use stable version of mtg for run.sh --- run.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run.sh b/run.sh index 2f89f82..338a4c8 100755 --- a/run.sh +++ b/run.sh @@ -34,7 +34,7 @@ MTG_SECRET="$MTG_CONFIG/secret" MTG_ENV="$MTG_CONFIG/env" if [ ! -f "$MTG_ENV" ]; then - MTG_IMAGENAME="${MTG_IMAGENAME:-nineseconds/mtg:latest}" + MTG_IMAGENAME="${MTG_IMAGENAME:-nineseconds/mtg:stable}" MTG_PORT="${MTG_PORT:-3128}" MTG_CONTAINER="${MTG_CONTAINER:-mtg}"