From 8d6afdde52317e09cb74b3675013aa02d7676e43 Mon Sep 17 00:00:00 2001 From: Brad Warren Date: Wed, 10 Jan 2018 08:30:36 -0800 Subject: [PATCH] Cleanup case when two venvs exist. --- letsencrypt-auto-source/letsencrypt-auto | 13 +++++++++---- letsencrypt-auto-source/letsencrypt-auto.template | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/letsencrypt-auto-source/letsencrypt-auto b/letsencrypt-auto-source/letsencrypt-auto index a184c5e3e..d29aaf42e 100755 --- a/letsencrypt-auto-source/letsencrypt-auto +++ b/letsencrypt-auto-source/letsencrypt-auto @@ -889,7 +889,11 @@ TempDir() { mktemp -d 2>/dev/null || mktemp -d -t 'le' # Linux || macOS } - +# Returns 0 if a letsencrypt installation exists at $OLD_VENV_PATH, otherwise, +# returns a non-zero number. +OldVenvExists() { + [ -z "$OLD_VENV_PATH" -o ! -f "$OLD_VENV_PATH/bin/letsencrypt" ] +} if [ "$1" = "--le-auto-phase2" ]; then # Phase 2: Create venv, install LE, and run. @@ -898,7 +902,7 @@ if [ "$1" = "--le-auto-phase2" ]; then SetPrevBootstrapVersion INSTALLED_VERSION="none" - if [ -d "$VENV_PATH" -o -d "$OLD_VENV_PATH" ]; then + if [ -d "$VENV_PATH" ] || OldVenvExists; then # If the selected Bootstrap function isn't a noop and it differs from the # previously used version if [ -n "$BOOTSTRAP_VERSION" -a "$BOOTSTRAP_VERSION" != "$PREV_BOOTSTRAP_VERSION" ]; then @@ -906,7 +910,8 @@ if [ "$1" = "--le-auto-phase2" ]; then if [ \( "$NONINTERACTIVE" = 1 \) -o \( \( -t 0 \) -a \( -t 1 \) \) ]; then if [ -d "$VENV_PATH" ]; then rm -rf "$VENV_PATH" - else # OLD_VENV_PATH exists + fi + if OldVenvExists; then rm -rf "$OLD_VENV_PATH" ln -s "$VENV_PATH" "$OLD_VENV_PATH" fi @@ -1414,7 +1419,7 @@ else # package). Phase 2 checks the version of the locally installed certbot. if [ ! -f "$VENV_BIN/letsencrypt" ]; then - if [ -z "$OLD_VENV_PATH" -o ! -f "$OLD_VENV_PATH/bin/letsencrypt" ]; then + if OldVenvExists; then if [ "$HELP" = 1 ]; then echo "$USAGE" exit 0 diff --git a/letsencrypt-auto-source/letsencrypt-auto.template b/letsencrypt-auto-source/letsencrypt-auto.template index c8c5ca5c5..275bc2bc7 100755 --- a/letsencrypt-auto-source/letsencrypt-auto.template +++ b/letsencrypt-auto-source/letsencrypt-auto.template @@ -428,7 +428,11 @@ TempDir() { mktemp -d 2>/dev/null || mktemp -d -t 'le' # Linux || macOS } - +# Returns 0 if a letsencrypt installation exists at $OLD_VENV_PATH, otherwise, +# returns a non-zero number. +OldVenvExists() { + [ -z "$OLD_VENV_PATH" -o ! -f "$OLD_VENV_PATH/bin/letsencrypt" ] +} if [ "$1" = "--le-auto-phase2" ]; then # Phase 2: Create venv, install LE, and run. @@ -437,7 +441,7 @@ if [ "$1" = "--le-auto-phase2" ]; then SetPrevBootstrapVersion INSTALLED_VERSION="none" - if [ -d "$VENV_PATH" -o -d "$OLD_VENV_PATH" ]; then + if [ -d "$VENV_PATH" ] || OldVenvExists; then # If the selected Bootstrap function isn't a noop and it differs from the # previously used version if [ -n "$BOOTSTRAP_VERSION" -a "$BOOTSTRAP_VERSION" != "$PREV_BOOTSTRAP_VERSION" ]; then @@ -445,7 +449,8 @@ if [ "$1" = "--le-auto-phase2" ]; then if [ \( "$NONINTERACTIVE" = 1 \) -o \( \( -t 0 \) -a \( -t 1 \) \) ]; then if [ -d "$VENV_PATH" ]; then rm -rf "$VENV_PATH" - else # OLD_VENV_PATH exists + fi + if OldVenvExists; then rm -rf "$OLD_VENV_PATH" ln -s "$VENV_PATH" "$OLD_VENV_PATH" fi @@ -573,7 +578,7 @@ else # package). Phase 2 checks the version of the locally installed certbot. if [ ! -f "$VENV_BIN/letsencrypt" ]; then - if [ -z "$OLD_VENV_PATH" -o ! -f "$OLD_VENV_PATH/bin/letsencrypt" ]; then + if OldVenvExists; then if [ "$HELP" = 1 ]; then echo "$USAGE" exit 0