diff --git a/tools/ui-ota/publish.mjs b/tools/ui-ota/publish.mjs index fdae4c67..b23a5b98 100644 --- a/tools/ui-ota/publish.mjs +++ b/tools/ui-ota/publish.mjs @@ -6,6 +6,7 @@ // which deploys from the live folder; a cut is staged in a scratch copy (IGNEUM_DLSITE) as every other publish. // // node tools/ui-ota/publish.mjs --version 1.0.1 --min-engine 0.3.19 [--notes "one line"] [--dry-run] [--deploy] [--public] +// [--ui-pair-override "reason"] ship an interface from another UI tree knowingly (the pair rule) // node tools/ui-ota/publish.mjs --verify [--url https://dl.igneum.network/dl//igneum-app-latest.json] // the live manifest's ui entry against the bundle in the folder (the read-back) // node tools/ui-ota/publish.mjs --self-test pack, hash, sign and verify with a throwaway key in a scratch folder @@ -161,6 +162,8 @@ function main() { const pm = path.join(root, 'packaging/ota/publish-manifest.sh'); const args = ['--version', arg('--app-version', readFolderVersion(dest)), '--ui', uiJson, '--notes', notes || `interface ${version} over the air`]; if (flag('--deploy')) args.push('--deploy'); + // the version pair (packaging/ota/publish-manifest.sh): an interface from another UI tree ships only with a logged reason + if (arg('--ui-pair-override', '')) args.push('--ui-pair-override', arg('--ui-pair-override', '')); if (flag('--public')) args.push('--public'); console.log(`publish-manifest.sh ${args.join(' ').split(token).join('')}`); const r = spawnSync('bash', [pm, ...args], { stdio: 'inherit', env: { ...process.env, IGNEUM_DLSITE: dlsite } });