From afdb5a322ec45888d0866807e974cd98ae4ba415 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sun, 14 Jun 2020 03:28:16 -0600 Subject: [PATCH] update caddy installer with latest functions --- caddy/install.bash | 92 +++++++++++++++++++++++++--------------------- 1 file changed, 50 insertions(+), 42 deletions(-) diff --git a/caddy/install.bash b/caddy/install.bash index 8540687..449789e 100644 --- a/caddy/install.bash +++ b/caddy/install.bash @@ -11,47 +11,55 @@ set -e set -u -################# -# Install caddy # -################# +pkg_cmd_name="caddy" +pkg_common_opt="$HOME/.local" -new_caddy="${HOME}/.local/bin/caddy" +# just a junk file so that the version check always fails for non-current versions +pkg_new_opt="$HOME/.local/opt/caddy-doesntexist111" -# Test for existing version -set +e -cur_caddy="$(command -v caddy)" -set -e -if [ -n "$cur_caddy" ]; then - cur_ver=$(caddy version | head -n 1 | cut -d ' ' -f 2) - if [ "$cur_ver" == "$WEBI_VERSION" ]; then - echo "caddy v$WEBI_VERSION already installed at $cur_caddy" - exit 0 - elif [ "$cur_caddy" != "$new_caddy" ]; then - echo "WARN: possible conflict with caddy v$WEBI_VERSION at $cur_caddy" - fi -fi - -# Note: this file is `source`d by the true installer and hence will have the webi functions - -# because we created releases.js we can use webi_download() -# downloads caddy to ~/Downloads -webi_download - -# because this is tar or zip, we can webi_extract() -# extracts to the WEBI_TMP directory, raw (no --strip-prefix) -webi_extract - -pushd "$WEBI_TMP" 2>&1 >/dev/null - echo Installing caddy v${WEBI_VERSION} as "$new_caddy" - mv ./caddy "$HOME/.local/bin/" -popd 2>&1 >/dev/null - -################### -# Update PATH # -################### - -# TODO get better output from pathman / output the path to add as return to webi bootstrap -webi_path_add "$HOME/.local/bin" - -echo "Installed 'caddy'" -echo "" +pkg_get_current_version() { + # 'caddy version' has output in this format: + # v2.1.0 h1:pQSaIJGFluFvu8KDGDODV8u4/QRED/OPyIR+MWYYse8= + # This trims it down to just the version number: + # 2.0.0 + echo "$(caddy version 2>/dev/null | head -n 1 | cut -d ' ' -f1 | sed 's:^v::')" +} + +pkg_format_cmd_version() { + # 'node v12.8.0' is the canonical version format for node + my_version="$1" + echo "$pkg_cmd_name v$my_version" +} + +pkg_link_new_version() { + # caddy is just a single file, no directory linking to do +} + +pkg_pre_install() { + # if selected version is installed, quit + webi_check + # will save to ~/Downloads/$WEBI_PKG_FILE by default + webi_download + # supported formats (.xz, .tar.*, .zip) will be extracted to $WEBI_TMP + webi_extract +} + +pkg_install() { + pushd "$WEBI_TMP" 2>&1 >/dev/null + + # rename the entire extracted folder to the new location + # (this will be "$HOME/.local/opt/node-v$WEBI_VERSION" by default) + mkdir -p "$pkg_common_bin" + mv ./"$pkg_cmd_name"* "$pkg_common_cmd" + + popd 2>&1 >/dev/null +} + +pkg_post_install() { + # just in case we add something in the future + pkg_link_new_version + + # web_path_add is defined in webi/template.bash at https://github.com/webinstall/packages + # Adds "$HOME/.local/opt/node" to PATH + webi_path_add "$pkg_common_bin" +} -- 2.25.1