#!/bin/bash
# postinst script for #PACKAGE#
#
# see: dh_installdeb(1)

set -e

# Begin vars.sh
#!/bin/bash
# DO NOT EDIT
# This file is regenerated each run.
# If you want to add or change a variable, edit debify/settings.json and the vars hashref

source /etc/os-release
export OBS_REPO="x${NAME}_${VERSION_ID}"
if ls debian/*.install &> /dev/null; then
    perl -pi -e 's/\${env:OBS_REPO}/$ENV{OBS_REPO}/' debian/*.install
fi

export DEB_INSTALL_ROOT="/usr/src/packages/BUILD/debian/tmp"
export DEB_SOURCE_ROOT="/usr/src/packages/BUILD/debian/SOURCES_FROM_SPEC"
export RPM_SOURCE_DIR="/usr/src/packages/BUILD/debian/SOURCES_FROM_SPEC"
export __isa_bits="64"
export __isa_name="x86"
export __sourcedir=""
export _bindir="/opt/cpanel//root/usr/bin"
export _cpanel_plugins="/var/cpanel/plugins"
export _datadir="/opt/cpanel//root/usr/share"
export _defaultdocdir="/opt/cpanel//root/usr/share/doc"
export _docdir="/opt/cpanel//root/usr/share/doc"
export _exec_prefix="/opt/cpanel//root/usr"
export _includedir="/opt/cpanel//root/usr/include"
export _infodir="/opt/cpanel//root/usr/share/info"
export _isa=""
export _lib="lib64"
export _libdir="/opt/cpanel//root/usr/lib64"
export _libexecdir="/opt/cpanel//root/usr/libexec"
export _localstatedir="/opt/cpanel//root/var"
export _mandir="/opt/cpanel//root/usr/share/man"
export _prefix="/opt/cpanel//root/usr"
export _root_bindir="/opt/cpanel//root/usr/bin"
export _root_datadir="/opt/cpanel//root/usr/share"
export _root_exec_prefix="/opt/cpanel//root/usr"
export _root_includedir="/opt/cpanel//root/usr/include"
export _root_infodir="/opt/cpanel//root/usr/share/info"
export _root_initddir="/opt/cpanel//root/etc/rc.d/init.d"
export _root_libdir="/opt/cpanel//root/usr/lib64"
export _root_libexecdir="/opt/cpanel//root/usr/libexec"
export _root_localstatedir="/opt/cpanel//root/var"
export _root_mandir="/opt/cpanel//root/usr/share/man"
export _root_prefix="/opt/cpanel//root/usr"
export _root_sbindir="/opt/cpanel//root/usr/sbin"
export _root_sharedstatedir="/opt/cpanel//root/usr/com"
export _root_sysconfdir="/opt/cpanel//root/etc"
export _sbindir="/opt/cpanel//root/usr/sbin"
export _scl_prefix="/opt/cpanel"
export _scl_root="/opt/cpanel//root"
export _sysconfdir="/opt/cpanel//root/etc"
export _ulc="/usr/local/cpanel"
export _unitdir="/usr/lib/systemd/system"
export buildroot="/usr/src/packages/BUILD/debian/tmp"
export config_docs_url="https://cpanel.net # TODO"
export full_package_name="cpanel-webapp-plugin-1.0.1"
export ix86="i386"
export name="cpanel-webapp-plugin"
export nil="0"
export ns_name="ea"
export pkg=""
export pkg_name=""
export pkgname=""
export previous_version="1.0.0"
export release="1"
export release_prefix="1"
export scl=""
export scl_name=""
export scl_name_base=""
export scl_name_version=""
export scl_prefix=""
export version="1.0.1"
export version_with_debian_revision="1.0.1-1"
export SOURCE0="$DEB_SOURCE_ROOT/LICENSE"
export SOURCE1="$DEB_SOURCE_ROOT/pkg.postinst"
export SOURCE2="$DEB_SOURCE_ROOT/pkg.preinst"
export SOURCE3="$DEB_SOURCE_ROOT/pkg.prerm"
export SOURCE4="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-configure.openapi.yaml"
export SOURCE5="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-delete.openapi.yaml"
export SOURCE6="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-deploy.openapi.yaml"
export SOURCE7="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-fetch_logs.openapi.yaml"
export SOURCE8="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-get_available.openapi.yaml"
export SOURCE9="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-has_feature.openapi.yaml"
export SOURCE10="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-list.openapi.yaml"
export SOURCE11="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-redeploy.openapi.yaml"
export SOURCE12="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-restart.openapi.yaml"
export SOURCE13="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-set_mode.openapi.yaml"
export SOURCE14="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-stage.openapi.yaml"
export SOURCE15="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-start.openapi.yaml"
export SOURCE16="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp-stop.openapi.yaml"
export SOURCE17="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_WebApp.pm"
export SOURCE18="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Admin_Modules_Cpanel_webapp.pm"
export SOURCE19="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Server_SSE_cpanel_UserTasks_Event_Stage.pm"
export SOURCE20="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_UserTasks_WebApp.pm"
export SOURCE21="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Adapter.pm"
export SOURCE22="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Adapter_NodeJS.pm"
export SOURCE23="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Adapters.pm"
export SOURCE24="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Deploy.pm"
export SOURCE25="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Domain.pm"
export SOURCE26="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Limits.pm"
export SOURCE27="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Podman.pm"
export SOURCE28="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Proxy.pm"
export SOURCE29="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Registry.pm"
export SOURCE30="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_WebApps_Source.pm"
export SOURCE31="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-API-WebApp.t"
export SOURCE32="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-Admin-Modules-Cpanel-webapp.t"
export SOURCE33="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-UserTasks-WebApp.t"
export SOURCE34="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Adapter-NodeJS.t"
export SOURCE35="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Adapters.t"
export SOURCE36="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Deploy.t"
export SOURCE37="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Domain.t"
export SOURCE38="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Limits.t"
export SOURCE39="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Podman.t"
export SOURCE40="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Proxy.t"
export SOURCE41="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Registry.t"
export SOURCE42="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_small_Cpanel-WebApps-Source.t"
export SOURCE43="$DEB_SOURCE_ROOT/_var_cpanel_feature-flags_webapp"
export SOURCE44="$DEB_SOURCE_ROOT/_var_cpanel_packages_extensions_webapp-limits"
export SOURCE45="$DEB_SOURCE_ROOT/_var_cpanel_packages_extensions_webapp-limits.tt2"
export SOURCE46="$DEB_SOURCE_ROOT/_var_cpanel_plugins_webapp_README.md"
export SOURCE47="$DEB_SOURCE_ROOT/_var_cpanel_plugins_webapp_cpanel-webapp-plugin.svg"
export SOURCE48="$DEB_SOURCE_ROOT/_var_cpanel_plugins_webapp_features_enable_webapp.jsonc"
export SOURCE49="$DEB_SOURCE_ROOT/_var_cpanel_plugins_webapp_install.json"
export SOURCE50="$DEB_SOURCE_ROOT/_var_cpanel_plugins_webapp_install.md"
# End vars.sh

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see https://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# Contents of SOURCES/pkg.postinst
#!/bin/bash

PLUGIN_DIR='/var/cpanel/plugins/webapp'
DEFAULT_THEME=jupiter

ADDON_FEATURE_DIR='/usr/local/cpanel/whostmgr/addonfeatures'
FEATURE_NAME='webapp'
FEATURE_LABEL='Web Apps'

# Register the Web Apps feature with WHM's Feature Manager and seed it into the
# feature lists so administrators can toggle it per package.
#
# Web Apps ships no cPanel UI link, so it is not registered through install.json
# (which would also add a menu tile). Instead we write the addonfeatures entry
# directly, mirroring what install_plugin does for link-backed plugins. The
# entry is only created when absent, so admin edits are preserved and the write
# is idempotent across upgrades.
register_webapp_feature() {
    if [[ -d "${ADDON_FEATURE_DIR}" && ! -e "${ADDON_FEATURE_DIR}/${FEATURE_NAME}" ]]; then
        printf '%s:%s\n' "${FEATURE_NAME}" "${FEATURE_LABEL}" > "${ADDON_FEATURE_DIR}/${FEATURE_NAME}" || true
    fi

    # Seed the feature into every feature list (default enabled, add_only so
    # existing admin choices are preserved). The config is run-once via its
    # flag, so this is safe to invoke on every install and upgrade.
    /usr/local/cpanel/scripts/modify_featurelist --config "${PLUGIN_DIR}/features/enable_webapp.jsonc" || true
}

# First Install
if [[ "$1" == "1" || "$1" == "abort-upgrade" ]]; then
    # TODO: Add more package post install steps if any
    /usr/local/cpanel/scripts/install_plugin --theme=${DEFAULT_THEME} ${PLUGIN_DIR} || true
    register_webapp_feature
fi
# Upgrades
if [[ "$1" == "2" || "$1" == "configure" ]]; then
    # TODO: Add more package update steps if any
    /usr/local/cpanel/scripts/install_plugin --theme=${DEFAULT_THEME} ${PLUGIN_DIR} || true
    register_webapp_feature
fi
# End SOURCES/pkg.postinst


exit 0
