learning_ai_notes/scripts/_docker-prep-strip.js
saravanakumardb1 216ebb83fb feat(ops): roll out canonical docker-prep + docker-doctor + Makefile (Phase D)
Apply Phase D playbook from docker-build-optimization-roadmap.md:

- scripts/docker-prep.sh: synced from canonical template
  (learning_ai_common_plat@a418a23e). Adds --dry-run, --check,
  --strip-overrides, idempotency guard, trap-based auto-restore,
  portable sed, .gitkeep preservation.
- scripts/_docker-prep-inject.js: helper for pnpm.overrides injection
- scripts/_docker-prep-strip.js: helper for --strip-overrides mode
- scripts/docker-doctor.sh: thin wrapper to canonical linter
- Makefile: make doctor target (gitea-doctor + docker-doctor)

Per-repo Dockerfile/compose fixes flagged by docker-doctor are tracked
in the roadmap and will land in follow-up commits.

Refs: docker-build-optimization-roadmap.md §Phase D
2026-05-27 04:05:46 -07:00

16 lines
673 B
JavaScript

// Helper for docker-prep.sh --strip-overrides — remove @bytelyst/* keys from
// pnpm.overrides. Reads: PKG_FILE_ARG (path). Writes: $PKG_FILE_ARG in place.
const fs = require('fs');
const f = process.env.PKG_FILE_ARG;
const p = JSON.parse(fs.readFileSync(f, 'utf8'));
if (p.pnpm && p.pnpm.overrides) {
const filtered = {};
for (const k of Object.keys(p.pnpm.overrides)) {
if (!k.startsWith('@bytelyst/')) filtered[k] = p.pnpm.overrides[k];
}
if (Object.keys(filtered).length === 0) delete p.pnpm.overrides;
else p.pnpm.overrides = filtered;
if (Object.keys(p.pnpm).length === 0) delete p.pnpm;
fs.writeFileSync(f, JSON.stringify(p, null, 2) + '\n');
}