Add installation note about flavour, support special cases (#222)
[akkoma] / rel / files / bin / pleroma_ctl
index f767fe134d9a6d8f9b760b94e0ee6f50dfb0a75c..e0e6d1b5af867bfae4b44c4ccf68c4b3a2c5ac82 100755 (executable)
@@ -2,30 +2,24 @@
 # XXX: This should be removed when elixir's releases get custom command support
 
 detect_flavour() {
-       arch="$(uname -m)"
-       if [ "$arch" = "x86_64" ]; then
-               arch="amd64"
-       elif [ "$arch" = "armv7l" ]; then
-               arch="arm"
-       elif [ "$arch" = "aarch64" ]; then
-               arch="arm64"
-       else
-               echo "Unsupported arch: $arch" >&2
-               exit 1
-       fi
-
-       if getconf GNU_LIBC_VERSION >/dev/null; then
-               libc_postfix=""
-       elif [ "$(ldd 2>&1 | head -c 9)" = "musl libc" ]; then
-               libc_postfix="-musl"
-       elif [ "$(find /lib/libc.musl* | wc -l)" ]; then
-               libc_postfix="-musl"
-       else
-               echo "Unsupported libc" >&2
-               exit 1
-       fi
-
-       echo "$arch$libc_postfix"
+    arch="amd64"
+    # Special cases
+    if grep -qe "VERSION_CODENAME=jammy" /etc/os-release; then
+        echo "$arch-ubuntu-jammy"
+    else
+        if getconf GNU_LIBC_VERSION >/dev/null; then
+                 libc_postfix=""
+           elif [ "$(ldd 2>&1 | head -c 9)" = "musl libc" ]; then
+                 libc_postfix="-musl"
+           elif [ "$(find /lib/libc.musl* | wc -l)" ]; then
+                 libc_postfix="-musl"
+           else
+                 echo "Unsupported libc" >&2
+                 exit 1
+           fi
+
+           echo "$arch$libc_postfix"
+    fi
 }
 
 detect_branch() {
@@ -35,11 +29,11 @@ detect_branch() {
        if [ "$branch" = "develop" ]; then
                echo "develop"
        elif [ "$branch" = "" ]; then
-               echo "master"
+               echo "stable"
        else
                # Note: branch name in version is of SemVer format and may only contain [0-9a-zA-Z-] symbols —
                #   if supporting releases for more branches, need to ensure they contain only these symbols.
-               echo "Releases are built only for master and develop branches" >&2
+               echo "Can't detect the branch automatically, please specify it by using the --branch option." >&2
                exit 1
        fi
 }
@@ -77,17 +71,20 @@ update() {
        done
 
        RELEASE_ROOT=$(dirname "$SCRIPTPATH")
-       uri="https://git.pleroma.social"
+       uri="https://akkoma-updates.s3-website.fr-par.scw.cloud"
        project_id="2"
        project_branch="${BRANCH:-$(detect_branch)}"
        flavour="${FLAVOUR:-$(detect_flavour)}"
        tmp="${TMP_DIR:-/tmp}"
        artifact="$tmp/pleroma.zip"
-       full_uri="${FULL_URI:-${uri}/api/v4/projects/${project_id}/jobs/artifacts/${project_branch}/download?job=${flavour}}"
+       full_uri="${FULL_URI:-${uri}/${project_branch}/akkoma-${flavour}}.zip"
        echo "Downloading the artifact from ${full_uri} to ${artifact}"
        curl "$full_uri" -o "${artifact}"
        echo "Unpacking ${artifact} to ${tmp}"
        unzip -q "$artifact" -d "$tmp"
+    echo "Backing up erlang cookie"
+    erlang_cookie=$(cat $RELEASE_ROOT/releases/COOKIE)
+    echo "Cookie: $erlang_cookie"
        echo "Copying files over to $RELEASE_ROOT"
        if [ "$NO_RM" = false ]; then
                echo "Removing files from the previous release"
@@ -97,7 +94,10 @@ update() {
        echo "Removing temporary files"
        rm -r "$tmp/release"
        rm "$artifact"
+    echo "Restoring erlang cookie"
+    echo $erlang_cookie > $RELEASE_ROOT/releases/COOKIE
        echo "Done! Please refer to the changelog/release notes for changes and update instructions"
+    echo "You probably also want to update your frontend!"
        set +e
 }
 
@@ -140,12 +140,16 @@ else
        FULL_ARGS="$*"
 
        ACTION="$1"
-       shift
-
-       if [ "$(echo \"$1\" | grep \"^-\" >/dev/null)" = false ]; then
-               SUBACTION="$1"
+       if [ $# -gt 0 ]; then
                shift
        fi
+       echo "$1" | grep "^-" >/dev/null
+       if [ $? -eq 1 ]; then
+               SUBACTION="$1"
+               if [ $# -gt 0 ]; then
+                       shift
+               fi
+       fi
 
        if [ "$ACTION" = "update" ]; then
                update "$@"