@@ -10,7 +10,8 @@ ROOT="$(mktemp -d "$ROOT_BASE/local-package-cli.XXXXXX")"
1010KEEP=" ${KEEP:- 0} "
1111
1212PACK_LOG=" $ROOT /npm-pack.log"
13- HELP_LOG=" $ROOT /docker-git-help.log"
13+ HELP_LOG_PNPM=" $ROOT /docker-git-help-pnpm.log"
14+ HELP_LOG_NPM=" $ROOT /docker-git-help-npm.log"
1415TAR_LIST=" $ROOT /tar-list.txt"
1516PACKED_TARBALL=" "
1617
@@ -26,9 +27,13 @@ on_error() {
2627 echo " --- npm pack log ---" >&2
2728 cat " $PACK_LOG " >&2 || true
2829 fi
29- if [[ -f " $HELP_LOG " ]]; then
30- echo " --- docker-git --help log ---" >&2
31- cat " $HELP_LOG " >&2 || true
30+ if [[ -f " $HELP_LOG_PNPM " ]]; then
31+ echo " --- pnpm docker-git --help log ---" >&2
32+ cat " $HELP_LOG_PNPM " >&2 || true
33+ fi
34+ if [[ -f " $HELP_LOG_NPM " ]]; then
35+ echo " --- npm exec docker-git --help log ---" >&2
36+ cat " $HELP_LOG_NPM " >&2 || true
3237 fi
3338}
3439
@@ -68,16 +73,31 @@ done <"$TAR_LIST"
6873grep -Fxq " package/dist/src/docker-git/main.js" " $TAR_LIST " \
6974 || fail " packed tarball does not include dist/src/docker-git/main.js"
7075
76+ main_entry_tmp=" $ROOT /main-entry.js"
77+ tar -xOf " $PACKED_TARBALL " package/dist/src/docker-git/main.js > " $main_entry_tmp "
78+ main_first_line=" $( head -n 1 " $main_entry_tmp " | tr -d ' \r' ) "
79+ [[ " $main_first_line " == " #!/usr/bin/env node" ]] \
80+ || fail " packed CLI entrypoint missing shebang: expected '#!/usr/bin/env node', got '$main_first_line '"
81+
7182dep_keys=" $( tar -xOf " $PACKED_TARBALL " package/package.json | node -e ' let s="";process.stdin.on("data",(c)=>{s+=c});process.stdin.on("end",()=>{const pkg=JSON.parse(s);const deps=Object.keys(pkg.dependencies ?? {});if (deps.includes("@effect-template/lib")) {console.error("@effect-template/lib must not be a runtime dependency in packed package");process.exit(1)}process.stdout.write(deps.join(","));});' ) "
7283[[ " $dep_keys " == * " effect" * ]] || fail " packed dependency set looks invalid: $dep_keys "
7384
7485mkdir -p " $ROOT /project"
7586cd " $ROOT /project"
7687npm init -y > /dev/null
7788pnpm add " $PACKED_TARBALL " --silent --lockfile=false
78- pnpm docker-git --help > " $HELP_LOG " 2>&1
89+ pnpm docker-git --help > " $HELP_LOG_PNPM " 2>&1
7990
80- grep -Fq -- " docker-git clone <url> [options]" " $HELP_LOG " \
91+ grep -Fq -- " docker-git clone <url> [options]" " $HELP_LOG_PNPM " \
8192 || fail " expected docker-git help output from local packed package"
8293
83- echo " e2e/local-package-cli: local tarball install + pnpm docker-git --help OK" >&2
94+ mkdir -p " $ROOT /project-npm"
95+ cd " $ROOT /project-npm"
96+ npm init -y > /dev/null
97+ npm install " $PACKED_TARBALL " --silent --no-audit --fund=false
98+ npm exec -- docker-git --help > " $HELP_LOG_NPM " 2>&1
99+
100+ grep -Fq -- " docker-git clone <url> [options]" " $HELP_LOG_NPM " \
101+ || fail " expected docker-git help output via npm exec from local packed package"
102+
103+ echo " e2e/local-package-cli: local tarball install + pnpm/npm CLI execution OK" >&2
0 commit comments