From 3b714446b4bbba4d07b329e4a3e675bafd546843 Mon Sep 17 00:00:00 2001 From: Devvyn <22340871+opticon454@users.noreply.github.com> Date: Mon, 21 Sep 2026 13:58:45 +0800 Subject: [PATCH] fix(docker): drop the wrong executable-bit assertion for Update-Codeman.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Claude-Session: https://claude.ai/code/session_01N6eadpRyqpA9PD3i139cSD --- test/docker-entrypoint.test.ts | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/test/docker-entrypoint.test.ts b/test/docker-entrypoint.test.ts index b4a19792..a71e5d48 100644 --- a/test/docker-entrypoint.test.ts +++ b/test/docker-entrypoint.test.ts @@ -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');