opf/openproject

View on GitHub
packaging/addons/openproject-edition/bin/configure

Summary

Maintainability
Test Coverage
#!/bin/bash

set -e

. "${INSTALLER_DIR}/wizard"

supported_distribution() {
    case "$(wiz_fact "osfamily")" in
        "debian")
            case $(wiz_fact "osversion") in
                "22.04")
                    return 0
                    ;;
                "20.04")
                    return 0
                    ;;
                "18.04")
                    return 0
                    ;;
                "12")
                    return 0
                    ;;
                "11")
                    return 0
                    ;;
                "10")
                    return 0
                    ;;
            esac
            ;;
        "redhat")
            case "$(wiz_fact "osversion")" in
                8*)
                    return 0
                    ;;
            esac
            ;;
    esac
    return 1
}

existing_installation() {
    [ "$(wiz_get "server/autoinstall")" != "" ];
}

never_answered_before() {
    [ "$(wiz_get "openproject/edition")" == "" ];
}

input_start() {
    # on first run of the wizard, set default edition if existing OpenProject installation
    if never_answered_before && existing_installation ; then
        wiz_set "openproject/edition" "default"
        STATE="done"
    elif supported_distribution ; then
        wiz_put "openproject/edition"
        if wiz_ask ; then
            STATE="done"
        else
            STATE="cancel"
        fi
    else
        wiz_set "openproject/edition" "default"
        STATE="done"
    fi
}

state_machine() {
  case "$1" in
    "start")
      input_start
      ;;
    "done")
      echo "DONE"
      exit 0
      ;;
    "cancel")
      echo "CANCEL"
      exit 1
      ;;
    *)
      echo "invalid state ${STATE}"
      exit 1
      ;;
  esac
}

wizard "start"