update gitea to use new bash functions
authorAJ ONeal <coolaj86@gmail.com>
Sun, 14 Jun 2020 18:09:37 +0000 (12:09 -0600)
committerAJ ONeal <coolaj86@gmail.com>
Sun, 14 Jun 2020 18:09:37 +0000 (12:09 -0600)
gitea/install.bash

index 63973d4ad68fb1e78bff55bd0418456798868621..527f12f589262265e3375a60b214e771fe39d2ee 100644 (file)
@@ -1,59 +1,65 @@
 # title: Gitea
 # homepage: https://github.com/go-gitea/gitea
-# tagline: a modern drop-in grep replacement
+# tagline: Fast, multi-platform web server with automatic HTTPS
 # description: |
-#   `gitea` is a clean, lightweight self-hosted Github alternative, forked from Gogs. Lighter and more user-friendly than Gitlab.
+# Caddy is an extensible server platform that uses TLS by default.
 # examples: |
-#
 #   ```bash
-#   gitea --version
+#   gitea start
 #   ```
 
 set -e
 set -u
 
-###################
-# Install gitea #
-###################
+pkg_common_opt="$HOME/.local"
 
-new_gitea="${HOME}/.local/bin/gitea"
+# just a junk file so that the version check always fails for non-current versions
+pkg_new_opt="$HOME/.local/opt/gitea-doesntexist111"
 
-# Test for existing version
-set +e
-cur_gitea="$(command -v gitea)"
-set -e
-if [ -n "$cur_gitea" ]; then
-  cur_ver=$(gitea --version | head -n 1 | cut -d ' ' -f 3)
-  if [ "$cur_ver" == "$WEBI_VERSION" ]; then
-    echo "gitea v$WEBI_VERSION already installed at $cur_gitea"
-    exit 0
-  elif [ "$cur_gitea" != "$new_gitea" ]; then
-    echo "WARN: possible conflict with gitea v$WEBI_VERSION at $cur_gitea"
-  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 gitea 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 gitea v${WEBI_VERSION} as "$new_gitea"
-        mv ./gitea-* "$HOME/.local/bin/gitea"
-        chmod a+x "$HOME/.local/bin/gitea"
-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 'gitea'"
-echo ""
+pkg_get_current_version() {
+    # 'gitea 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 "$(gitea --version 2>/dev/null | head -n 1 | cut -d' ' -f3)"
+}
+
+pkg_format_cmd_version() {
+    # 'gitea v2.1.0' is the canonical version format for gitea
+    my_version="$1"
+    echo "$pkg_cmd_name v$my_version"
+}
+
+pkg_link_new_version() {
+    # gitea is just a single file, no directory linking to do
+    true
+}
+
+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/bin/gitea" 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/bin" to PATH
+    webi_path_add "$pkg_common_bin"
+}