From 99f2b0936ff6a079b573ff464369832a9df45df7 Mon Sep 17 00:00:00 2001 From: mstrhakr Date: Sat, 28 Mar 2026 18:59:21 -0400 Subject: [PATCH 1/9] refactor: remove ACE_VERSION references and streamline Ace editor handling --- .github/workflows/build.yml | 1 - build.ps1 | 3 -- build_in_docker.sh | 2 -- compose.manager.plg | 33 +++++++++++++++++++ .../compose.manager.settings.page | 7 ++-- .../php/compose_manager_main.php | 20 ++++++++++- source/pkg_build.sh | 29 ---------------- versions.env | 1 - 8 files changed, 56 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 850f7dee..85aee891 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -115,7 +115,6 @@ jobs: -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro \ -e TZ="America/New_York" \ -e COMPOSE_VERSION="$COMPOSE_VERSION" \ - -e ACE_VERSION="$ACE_VERSION" \ -e OUTPUT_FOLDER="/mnt/output" \ -e PKG_VERSION="${VERSION}" \ -e PKG_BUILD="${BUILD}" \ diff --git a/build.ps1 b/build.ps1 index 80087dca..29041abf 100644 --- a/build.ps1 +++ b/build.ps1 @@ -60,11 +60,9 @@ $versionsFile = Join-Path $ScriptDir "versions.env" if (Test-Path $versionsFile) { Get-Content $versionsFile | ForEach-Object { if ($_ -match '^COMPOSE_VERSION=(.+)$' -and -not $ComposeVersion) { $ComposeVersion = $Matches[1].Trim() } - if ($_ -match '^ACE_VERSION=(.+)$' -and -not $AceVersion) { $AceVersion = $Matches[1].Trim() } } } if (-not $ComposeVersion) { $ComposeVersion = "5.0.2" } -if (-not $AceVersion) { $AceVersion = "1.43.5" } # Generate dev version with timestamp if -Dev flag is used if ($Dev) { @@ -161,7 +159,6 @@ $dockerArgs = @( "-v", "${HostCACert}:${ContainerCACert}:ro" "-e", "TZ=America/New_York" "-e", "COMPOSE_VERSION=$ComposeVersion" - "-e", "ACE_VERSION=$AceVersion" "-e", "OUTPUT_FOLDER=/mnt/output" "-e", "PKG_VERSION=$Version" "-e", "PKG_BUILD=$BuildNum" diff --git a/build_in_docker.sh b/build_in_docker.sh index 33626bd7..e3b3fd78 100755 --- a/build_in_docker.sh +++ b/build_in_docker.sh @@ -3,14 +3,12 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" [ -f "${SCRIPT_DIR}/versions.env" ] && source "${SCRIPT_DIR}/versions.env" [ -z "$COMPOSE_VERSION" ] && COMPOSE_VERSION=5.0.2 -[ -z "$ACE_VERSION" ] && ACE_VERSION=1.43.5 [ -z "$PKG_VERSION" ] && PKG_VERSION="$(date +%Y.%m.%d)" [ -z "$PKG_BUILD" ] && PKG_BUILD="$(date +%H%M)" docker run --rm --tmpfs /tmp \ -v "$PWD/archive:/mnt/output:rw" \ -e TZ="America/New_York" \ -e COMPOSE_VERSION="$COMPOSE_VERSION" \ - -e ACE_VERSION="$ACE_VERSION" \ -e PKG_VERSION="$PKG_VERSION" \ -e PKG_BUILD="$PKG_BUILD" \ -e OUTPUT_FOLDER="/mnt/output" \ diff --git a/compose.manager.plg b/compose.manager.plg index 7690e40c..97387621 100644 --- a/compose.manager.plg +++ b/compose.manager.plg @@ -14,6 +14,8 @@ + + ]> &packageMD5; + + +# Download Ace editor if not already provided by Unraid (Unraid 7.0.0+ includes it via Dynamix) +ACE_DYNAMIX_PATH="/usr/local/emhttp/plugins/dynamix/javascript/ace/ace.js" +ACE_PLUGIN_DIR="&emhttpLOC;/javascript/ace" + +if [ -f "$ACE_DYNAMIX_PATH" ]; then + echo "Ace editor found at $ACE_DYNAMIX_PATH (Unraid 7.0.0+), skipping download." +else + echo "Ace editor not found in Dynamix (pre-7.0.0 Unraid), downloading v&aceVER;..." + mkdir -p "$ACE_PLUGIN_DIR" + TMPDIR_ACE="/tmp/ace-install-$$" + mkdir -p "$TMPDIR_ACE" + if wget --no-check-certificate -q -O "$TMPDIR_ACE/ace.zip" "&aceURL;"; then + unzip -q "$TMPDIR_ACE/ace.zip" \ + "ace-builds-&aceVER;/src-min-noconflict/ace.js" \ + "ace-builds-&aceVER;/src-min-noconflict/mode-yaml.js" \ + "ace-builds-&aceVER;/src-min-noconflict/mode-sh.js" \ + "ace-builds-&aceVER;/src-min-noconflict/theme-tomorrow.js" \ + "ace-builds-&aceVER;/src-min-noconflict/theme-tomorrow_night.js" \ + -d "$TMPDIR_ACE/extracted" + cp "$TMPDIR_ACE/extracted/ace-builds-&aceVER;/src-min-noconflict/"*.js "$ACE_PLUGIN_DIR/" + echo "Ace editor v&aceVER; installed to $ACE_PLUGIN_DIR" + else + echo "WARNING: Failed to download Ace editor. The YAML/env editor will not have syntax highlighting." + fi + rm -rf "$TMPDIR_ACE" +fi + + + # Use the new patch utility during install to cleanup and optionally apply patches diff --git a/source/compose.manager/compose.manager.settings.page b/source/compose.manager/compose.manager.settings.page index 70f23941..ef58ac42 100755 --- a/source/compose.manager/compose.manager.settings.page +++ b/source/compose.manager/compose.manager.settings.page @@ -2496,7 +2496,7 @@ $projects_exist = intval(shell_exec("ls -l " . $compose_root . " | grep ^d | wc

Build & Packaging

  • `pkg_build.sh` — packaging helper used when assembling plugin releases.
  • -
  • ace-builds — source for the bundled Ace editor files.
  • +
  • ace-builds — Ace editor (provided by Unraid 7.0.0+ via Dynamix; downloaded during install on older versions).

If you maintain packaging scripts or upstream libraries we reference and would like a more explicit mention, let me know and I'll add it.

@@ -2532,8 +2532,9 @@ $projects_exist = intval(shell_exec("ls -l " . $compose_root . " | grep ^d | wc } } catch (e) {} - // Fallback: fetch the bundled ace.js and attempt to extract a version string - $.get('/plugins/compose.manager/javascript/ace/ace.js', function(data) { + // Fallback: fetch ace.js from wherever it lives (Dynamix on 7.0.0+, plugin-local on older) + var aceJsPath = (typeof aceBasePath !== 'undefined' ? aceBasePath : '/webGui/javascript/ace') + '/ace.js'; + $.get(aceJsPath, function(data) { var m = null; // common patterns: ace.version = '1.4.12' or "version: '1.4.12'" or ace-builds-1.4.12 m = data.match(/ace\.version\s*=\s*['\"]([\w\.\-]+)['\"]/i) || data.match(/version\s*[:=]\s*['\"]([\w\.\-]+)['\"]/i) || data.match(/ace-builds[-_]?([\d\.\-]+)/i); diff --git a/source/compose.manager/php/compose_manager_main.php b/source/compose.manager/php/compose_manager_main.php index 273609b4..3062bbfc 100755 --- a/source/compose.manager/php/compose_manager_main.php +++ b/source/compose.manager/php/compose_manager_main.php @@ -178,7 +178,14 @@ - + +