diff --git a/.changeset/fix-pnpm-binary-install.md b/.changeset/fix-pnpm-binary-install.md new file mode 100644 index 00000000..fe0d0ed1 --- /dev/null +++ b/.changeset/fix-pnpm-binary-install.md @@ -0,0 +1,9 @@ +--- +"@googleworkspace/cli": patch +--- + +fix: auto-install binary on run if missing + +pnpm skips postinstall when the package is already up to date. +This ensures run.js will auto-trigger install.js if the +binary is missing, fixing the 'gws binary not found' error. diff --git a/npm/run.js b/npm/run.js index 67ff6fdd..4d6e84db 100644 --- a/npm/run.js +++ b/npm/run.js @@ -12,9 +12,15 @@ const binPath = path.join(__dirname, "bin", platform.binary); if (!fs.existsSync(binPath)) { console.error( - `gws binary not found at ${binPath}\nRun "npm install -g @googleworkspace/cli" to install it.`, + `gws binary not found at ${binPath}\nAuto-installing...` ); - process.exit(1); + const install = spawnSync(process.execPath, [path.join(__dirname, "install.js")], { + cwd: __dirname, + stdio: "inherit", + }); + if (install.status !== 0) { + process.exit(install.status ?? 1); + } } const result = spawnSync(binPath, process.argv.slice(2), {