From d62e2d42d90e28c0941c03fa3e377d015ef59782 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Wed, 22 Apr 2026 04:01:55 -0500 Subject: [PATCH] fix: create payload dir, bundle MokoOnyx ZIP during release build - Added payload/index.html placeholder - script.php: look for mokoonyx.zip first, fallback to mokocassiopeia.zip - auto-release.yml: download MokoOnyx stable ZIP into payload/ during build Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/auto-release.yml | 15 +++++++++++++++ src/payload/index.html | 0 src/script.php | 13 +++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 src/payload/index.html diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index f51d7bcd..79db47b0 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -499,6 +499,21 @@ jobs: EXCLUDES=".ftpignore sftp-config* *.ppk *.pem *.key .env*" + # Bundle MokoOnyx payload if payload dir exists + if [ -d "${SOURCE_DIR}/payload" ]; then + # Get latest MokoOnyx stable ZIP name from release + ONYX_API="https://git.mokoconsulting.tech/api/v1/repos/MokoConsulting/MokoOnyx/releases/tags/stable" + ONYX_ZIP=$(curl -sf -H "Authorization: token ${{ secrets.GA_TOKEN }}" "$ONYX_API" 2>/dev/null \ + | python3 -c "import sys,json; assets=json.load(sys.stdin).get('assets',[]); zips=[a for a in assets if a['name'].endswith('.zip')]; print(zips[0]['browser_download_url'] if zips else '')" 2>/dev/null) + if [ -n "$ONYX_ZIP" ]; then + curl -sfL "$ONYX_ZIP" -o "${SOURCE_DIR}/payload/mokoonyx.zip" \ + && echo "Bundled MokoOnyx payload from ${ONYX_ZIP}" \ + || echo "WARNING: could not download MokoOnyx payload" + else + echo "WARNING: could not find MokoOnyx stable release" + fi + fi + # ZIP package cd "$SOURCE_DIR" zip -r "/tmp/${ZIP_NAME}" . -x $EXCLUDES diff --git a/src/payload/index.html b/src/payload/index.html new file mode 100644 index 00000000..e69de29b diff --git a/src/script.php b/src/script.php index 327e2208..748b70de 100644 --- a/src/script.php +++ b/src/script.php @@ -288,20 +288,25 @@ class plgSystemMokoWaaSInstallerScript implements InstallerScriptInterface // Template not installed — install from bundled payload $pluginPath = JPATH_PLUGINS . '/system/mokowaas'; - $payloadZip = $pluginPath . '/payload/mokocassiopeia.zip'; + $payloadZip = $pluginPath . '/payload/mokoonyx.zip'; + + // Fallback to legacy name + if (!file_exists($payloadZip)) { + $payloadZip = $pluginPath . '/payload/mokocassiopeia.zip'; + } if (!file_exists($payloadZip)) { Factory::getApplication()->enqueueMessage( - 'MokoCassiopeia payload not found at ' - . $payloadZip, + 'MokoOnyx payload not found. Please install MokoOnyx manually from ' + . 'Gitea Releases.', 'warning' ); return; } - $tmpDir = JPATH_ROOT . '/tmp/mokocassiopeia'; + $tmpDir = JPATH_ROOT . '/tmp/mokoonyx'; try {