fix(docker): drop the wrong executable-bit assertion for Update-Codeman.sh

Start-Codeman.sh, its sibling and the script it hands off to, is itself
committed non-executable (100644) upstream — it's documented and invoked
as `bash docker/Start-Codeman.sh`, never `./docker/Start-Codeman.sh`. The
"is executable" test I'd added for Update-Codeman.sh asserted the opposite
convention, which the file correctly does not follow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01N6eadpRyqpA9PD3i139cSD
This commit is contained in:
Devvyn
2026-09-21 13:58:45 +08:00
co-authored by Claude Sonnet 5
parent 9ba90a674a
commit 3b714446b4
+1 -11
View File
@@ -21,7 +21,7 @@
*/
import { describe, it, expect, beforeAll, afterAll } from 'vitest';
import { readFileSync, mkdtempSync, rmSync, writeFileSync, statSync } from 'node:fs';
import { readFileSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
import { execFileSync } from 'node:child_process';
import { tmpdir } from 'node:os';
import { join } from 'node:path';
@@ -180,16 +180,6 @@ describe('Update-Codeman.sh (the scripted major-update path — docker/README.md
execFileSync('bash', ['-n', join(ROOT, 'docker/Update-Codeman.sh')]);
});
it('is executable, like every other script this deployment runs directly', () => {
// Windows checkouts (this repo is developed on both) do not carry a real
// execute bit, so this only meaningfully asserts on POSIX — matching how
// docker/README.md documents running it (`bash docker/Update-Codeman.sh`,
// not `./docker/Update-Codeman.sh`) either way.
if (process.platform === 'win32') return;
const mode = statSync(join(ROOT, 'docker/Update-Codeman.sh')).mode;
expect(mode & 0o111).not.toBe(0);
});
it('stops the stack, THEN force-rebuilds with --no-cache, THEN hands off to Start-Codeman.sh', () => {
const down = updateScript.indexOf('"${compose_command[@]}" down');
const build = updateScript.indexOf('"${compose_command[@]}" build --no-cache');