summaryrefslogtreecommitdiff
path: root/packages/cli/src
diff options
context:
space:
mode:
authorOlcan <[email protected]>2025-04-28 09:07:37 -0700
committerGitHub <[email protected]>2025-04-28 09:07:37 -0700
commit491f8b28b4f53ddb763324964f38280c9a1221c3 (patch)
tree06443d74c96607196b1140fdc3622624b21d2850 /packages/cli/src
parent491a9da80b3ef7fe1c5cfe865f0dc0fbee6105f3 (diff)
ability to (re-)build sandbox outside GC repo root, useful for dev iterations (#196)
Diffstat (limited to 'packages/cli/src')
-rw-r--r--packages/cli/src/gemini.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/cli/src/gemini.ts b/packages/cli/src/gemini.ts
index 7e329dd6..fa78c67a 100644
--- a/packages/cli/src/gemini.ts
+++ b/packages/cli/src/gemini.ts
@@ -85,6 +85,25 @@ function start_sandbox(sandbox: string) {
}
}
+ // if BUILD_SANDBOX is set, then call scripts/build_sandbox.sh under gemini-code repo
+ // note this can only be done with binary linked from gemini-code repo
+ if (process.env.BUILD_SANDBOX) {
+ if (!gcPath.includes('gemini-code/packages/')) {
+ console.error(
+ 'ERROR: cannot BUILD_SANDBOX using installed gemini-code binary; ' +
+ 'run `npm link ./packages/cli` under gemini-code repo to switch to linked binary.',
+ );
+ process.exit(1);
+ } else {
+ console.log('building sandbox ...');
+ const gcRoot = gcPath.split('/packages/')[0];
+ spawnSync(`cd ${gcRoot} && scripts/build_sandbox.sh`, {
+ stdio: 'inherit',
+ shell: true,
+ });
+ }
+ }
+
// stop if image is missing
if (!execSync(`${sandbox} images -q ${image}`).toString().trim()) {
const remedy = gcPath.includes('gemini-code/packages/')