Merge branch '1048-semver-format-compliance' into 'develop'
[akkoma] / rel / files / bin / pleroma_ctl
index 62368115e565fb7116d8b62e34b67505e3359078..e731d20eb7e6ba27321d70d365870b96d930c4e1 100755 (executable)
@@ -2,7 +2,7 @@
 # XXX: This should be removed when elixir's releases get custom command support
 
 detect_flavour() {
-       arch="$(arch)"
+       arch="$(uname -m)"
        if [ "$arch" = "x86_64" ]; then
                arch="amd64"
        elif [ "$arch" = "armv7l" ]; then
@@ -30,12 +30,15 @@ detect_flavour() {
 
 detect_branch() {
        version="$(cut -d' ' -f2 <"$RELEASE_ROOT"/releases/start_erl.data)"
-       branch="$(echo "$version" | cut -d'-' -f 4)"
+       # Expected format: major.minor.patch_version(-number_of_commits_ahead_of_tag-gcommit_hash).branch
+       branch="$(echo "$version" | cut -d'.' -f 4)"
        if [ "$branch" = "develop" ]; then
                echo "develop"
        elif [ "$branch" = "" ]; then
                echo "master"
        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
                exit 1
        fi
@@ -110,7 +113,7 @@ else
 
        if [ "$1" = "update" ]; then
                update "$2"
-       elif [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then
+       elif [ "$1" = "migrate" ] || [ "$1" = "rollback" ] || [ "$1" = "create" ] || [ "$1 $2" = "instance gen" ] || [ -n "$PLEROMA_CTL_RPC_DISABLED" ]; then
                "$SCRIPTPATH"/pleroma eval 'Pleroma.ReleaseTasks.run("'"$*"'")'
        else
                "$SCRIPTPATH"/pleroma rpc 'Pleroma.ReleaseTasks.run("'"$*"'")'