#!/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-pal-plugin-1.4.1"
export ix86="i386"
export name="cpanel-pal-plugin"
export nil="0"
export ns_name="ea"
export pkg=""
export pkg_name=""
export pkgname=""
export previous_version="1.4.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.4.1"
export version_with_debian_revision="1.4.1-1"
export SOURCE0="$DEB_SOURCE_ROOT/LICENSE"
export SOURCE1="$DEB_SOURCE_ROOT/pkg.postinst"
export SOURCE2="$DEB_SOURCE_ROOT/pkg.postrm"
export SOURCE3="$DEB_SOURCE_ROOT/pkg.preinst"
export SOURCE4="$DEB_SOURCE_ROOT/pkg.prerm"
export SOURCE5="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-add_api_token.openapi.yaml"
export SOURCE6="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-can_create_domains.openapi.yaml"
export SOURCE7="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-create_account.openapi.yaml"
export SOURCE8="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-disk_quota_check.openapi.yaml"
export SOURCE9="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-get_all_user_pal_info.openapi.yaml"
export SOURCE10="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-get_api_token.openapi.yaml"
export SOURCE11="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-get_sso_link.openapi.yaml"
export SOURCE12="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-poll_publish.openapi.yaml"
export SOURCE13="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal-publish.openapi.yaml"
export SOURCE14="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_API_Pal.pm"
export SOURCE15="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Admin_Modules_Cpanel_pal.pm"
export SOURCE16="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Exception_Pal_API.pm"
export SOURCE17="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Connector.pm"
export SOURCE18="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Environment.pm"
export SOURCE19="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Hooks_ChangePackage.pm"
export SOURCE20="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Hooks_CreateAccount.pm"
export SOURCE21="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_LifeCycle.pm"
export SOURCE22="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Publish.pm"
export SOURCE23="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Redirector.pm"
export SOURCE24="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Setup.pm"
export SOURCE25="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Pal_Tiers.pm"
export SOURCE26="$DEB_SOURCE_ROOT/_usr_local_cpanel_Cpanel_Template_Plugin_Pal.pm"
export SOURCE27="$DEB_SOURCE_ROOT/_usr_local_cpanel_base_frontend_jupiter_nova_index.html.tt"
export SOURCE28="$DEB_SOURCE_ROOT/_usr_local_cpanel_install_fix_nova_metadata_changes.pm"
export SOURCE29="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-API-Pal_plugin.t"
export SOURCE30="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Admin-Modules-Cpanel-pal_plugin.t"
export SOURCE31="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Admin-Modules-Cpanel-pal_tokens.t"
export SOURCE32="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Exception-Pal-API_pal_plugin.t"
export SOURCE33="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Connector-SSL.t"
export SOURCE34="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Connector_pal_plugin.t"
export SOURCE35="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Environment_plugin.t"
export SOURCE36="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Hooks-CreateAccount.t"
export SOURCE37="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-LifeCycle_plugin.t"
export SOURCE38="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Publish_pal_plugin.t"
export SOURCE39="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Redirector.t"
export SOURCE40="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Setup.t"
export SOURCE41="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Pal-Tiers.t"
export SOURCE42="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Plugins-Components-cpanel-tools-PalBannerAI_plugin.t"
export SOURCE43="$DEB_SOURCE_ROOT/_usr_local_cpanel_t_medium_Cpanel-Template-Plugin-Pal.t"
export SOURCE44="$DEB_SOURCE_ROOT/_usr_local_cpanel_whostmgr_docroot_themes_x_css_ai-app-builder.min.css"
export SOURCE45="$DEB_SOURCE_ROOT/_var_cpanel_.placeholder"
export SOURCE46="$DEB_SOURCE_ROOT/_var_cpanel_feature-flags_cpanel.pal.plugin.installed"
export SOURCE47="$DEB_SOURCE_ROOT/_var_cpanel_packages_extensions_ai-app-builder"
export SOURCE48="$DEB_SOURCE_ROOT/_var_cpanel_packages_extensions_ai-app-builder.tt2"
export SOURCE49="$DEB_SOURCE_ROOT/_var_cpanel_packages_types_nova.json"
export SOURCE50="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_README.md"
export SOURCE51="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_config.yaml"
export SOURCE52="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_cpanel-pal-plugin.svg"
export SOURCE53="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_features_disable_pal_default.jsonc"
export SOURCE54="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_install.json"
export SOURCE55="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_lifecycle.jsonc"
export SOURCE56="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_ar.yaml"
export SOURCE57="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_de.yaml"
export SOURCE58="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_es_es.yaml"
export SOURCE59="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_fr.yaml"
export SOURCE60="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_id.yaml"
export SOURCE61="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_ja.yaml"
export SOURCE62="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_pt_br.yaml"
export SOURCE63="$DEB_SOURCE_ROOT/_var_cpanel_plugins_pal_locale_tr.yaml"
# 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/pal'
DEFAULT_THEME=jupiter
TOUCH=`which touch`
LOCALE_DIR='/var/cpanel/locale'
THEME_DIR="/var/cpanel/locale/themes/${DEFAULT_THEME}"
WHM_API1=`which whmapi1`

# First Install
if [[ "$1" == "1" || "$1" == "abort-upgrade" ]]; then
    /usr/local/cpanel/scripts/run_plugin_lifecycle --plugin cpanel-pal-plugin --method install || true

    # Register package change validation hook
    /usr/local/cpanel/bin/manage_hooks add module Cpanel::Pal::Hooks::ChangePackage || true

    # Add Pal account change hooks
    /usr/local/cpanel/bin/manage_hooks add module Cpanel::Pal::Hooks::CreateAccount || true

    # Workaround for DUCK-10039 so customers can disable the left menu extra marketing stuff if they want.
    [ -x /usr/local/cpanel/scripts/manage_extra_marketing ] && /usr/local/cpanel/scripts/manage_extra_marketing --verbose apply || true

    # Must be updated to force a rebuild of the locale databases in case there are any changes.
    # * cdb files are not tracked by the OS package.
    # * yaml files are tracked by OS package, so any change will show as a package update.
    # * In order to rebuild, the yaml files must show as newer than cdb files.
    # So, first, set an old date (1970...) for the cdb files, and build_locale_databases --clean will reset them after the critical comparison happens.
    if [[ -d $PLUGIN_DIR/locale/ ]]; then
        find $PLUGIN_DIR/locale/ -type f -name "*.yaml" -exec basename {} .yaml \;  | xargs -I % $TOUCH -d '1970-12-12' $LOCALE_DIR/%.cdb $THEME_DIR/%.cdb || true
        # NOTE: --clean removes the cdb file first and then regenerates it.
        /usr/local/cpanel/bin/servers_queue queue 'build_locale_databases --clean' || true
    fi
fi
# Upgrades
if [[ "$1" == "2" || "$1" == "configure" ]]; then
    /usr/local/cpanel/scripts/run_plugin_lifecycle --plugin cpanel-pal-plugin --method install || true

    # Register package change validation hook
    /usr/local/cpanel/bin/manage_hooks add module Cpanel::Pal::Hooks::ChangePackage || true

    # Add Pal account change hooks
    /usr/local/cpanel/bin/manage_hooks add module Cpanel::Pal::Hooks::CreateAccount || true

    # Workaround for DUCK-10039 so customers can disable the left menu extra marketing stuff if they want.
    [ -x /usr/local/cpanel/scripts/manage_extra_marketing ] && /usr/local/cpanel/scripts/manage_extra_marketing --verbose apply || true

    $WHM_API1 --output=jsonpretty update_featurelist featurelist='Mail Only' standalone-pal=0 has_root=1 || true

    # Must be updated to force a rebuild of the locale databases in case there are any changes.
    # * cdb files are not tracked by the OS package.
    # * yaml files are tracked by OS package, so any change will show as a package update.
    # * In order to rebuild, the yaml files must show as newer than cdb files.
    # So, first, set an old date (1970...) for the cdb files, and build_locale_databases --clean will reset them after the critical comparison happens.
    if [[ -d $PLUGIN_DIR/locale/ ]]; then
        find $PLUGIN_DIR/locale/ -type f -name "*.yaml" -exec basename {} .yaml \;  | xargs -I % $TOUCH -d '1970-12-12' $LOCALE_DIR/%.cdb $THEME_DIR/%.cdb || true
        # NOTE: --clean removes the cdb file first and then regenerates it.
        /usr/local/cpanel/bin/servers_queue queue 'build_locale_databases --clean' || true
    fi

    #Re-compile cached templates
    find /var/cpanel/template_compiles/usr/local/cpanel/base/frontend/jupiter/nova/ -delete 2>/dev/null 1>/dev/null || true
    /usr/local/cpanel/bin/rebuild-templates --search-dir /usr/local/cpanel/base/frontend/jupiter/nova/ 2>/dev/null 1>/dev/null || true
fi
# End SOURCES/pkg.postinst


exit 0
