diff --git a/packages/cosmic-swingset/Makefile b/packages/cosmic-swingset/Makefile index 312a0194f4b..e33a171b8ff 100644 --- a/packages/cosmic-swingset/Makefile +++ b/packages/cosmic-swingset/Makefile @@ -101,9 +101,10 @@ t1-start-ag-solo: # # If you still want the client/chain separation without delay, # then run: make scenario3-setup FAKE_CHAIN_DELAY=0 +VATWORKER=local scenario3-setup: rm -rf t3 - bin/ag-solo init t3 --egresses=fake --webport=$(BASE_PORT) + bin/ag-solo init t3 --egresses=fake --webport=$(BASE_PORT) --defaultManagerType=$(VATWORKER) @echo 'Execute `make scenario3-run` to run the client and simulated chain' # This runs both the client and the fake chain. diff --git a/packages/cosmic-swingset/lib/ag-solo/init-basedir.js b/packages/cosmic-swingset/lib/ag-solo/init-basedir.js index e489d207252..a186e85c87b 100644 --- a/packages/cosmic-swingset/lib/ag-solo/init-basedir.js +++ b/packages/cosmic-swingset/lib/ag-solo/init-basedir.js @@ -1,4 +1,4 @@ -/* global __dirname Buffer */ +/* global __dirname Buffer process */ import fs from 'fs'; import path from 'path'; import { execFileSync } from 'child_process'; @@ -18,8 +18,14 @@ export default function initBasedir( egresses, opts = {}, ) { - const { wallet = DEFAULT_WALLET, ...options } = opts; + const { env = process.environment } = opts; + const { + wallet = DEFAULT_WALLET, + defaultManagerType = env.WORKER_TYPE || 'local', + ...options + } = opts; options.wallet = wallet; + options.defaultManagerType = defaultManagerType; const here = __dirname; // We either need a basedir with an initialised key, or no basedir. diff --git a/packages/cosmic-swingset/lib/ag-solo/main.js b/packages/cosmic-swingset/lib/ag-solo/main.js index 60bbeb77830..1b9dd2971f8 100644 --- a/packages/cosmic-swingset/lib/ag-solo/main.js +++ b/packages/cosmic-swingset/lib/ag-solo/main.js @@ -78,6 +78,7 @@ start webport: '8000', webhost: '127.0.0.1', egresses: DEFAULT_EGRESSES, + defaultManagerType: process.env.WORKER_TYPE || 'local', }, }); const webport = Number(subOpts.webport); diff --git a/packages/cosmic-swingset/lib/ag-solo/start.js b/packages/cosmic-swingset/lib/ag-solo/start.js index dbdd598ea96..7eb8694044e 100644 --- a/packages/cosmic-swingset/lib/ag-solo/start.js +++ b/packages/cosmic-swingset/lib/ag-solo/start.js @@ -81,6 +81,7 @@ async function buildSwingset( vatsDir, argv, broadcast, + defaultManagerType, ) { const initialMailboxState = JSON.parse(fs.readFileSync(mailboxStateFile)); @@ -143,6 +144,9 @@ async function buildSwingset( const { storage, commit } = openSwingStore(kernelStateDBDir); if (!swingsetIsInitialized(storage)) { + if (defaultManagerType && !config.defaultManagerType) { + config.defaultManagerType = defaultManagerType; + } await initializeSwingset(config, argv, storage); } const controller = await makeSwingsetController(storage, deviceEndowments); @@ -277,6 +281,10 @@ export default async function start(basedir, argv) { } } + const { wallet, defaultManagerType } = JSON.parse( + fs.readFileSync('options.json', 'utf-8'), + ); + const vatsDir = path.join(basedir, 'vats'); const stateDBDir = path.join(basedir, 'swingset-kernel-state'); const d = await buildSwingset( @@ -285,6 +293,7 @@ export default async function start(basedir, argv) { vatsDir, argv, broadcast, + defaultManagerType, ); const { @@ -298,8 +307,6 @@ export default async function start(basedir, argv) { // Remove wallet traces. await unlink('html/wallet').catch(_ => {}); - const { wallet } = JSON.parse(fs.readFileSync('options.json', 'utf-8')); - // Symlink the wallet. const pjs = require.resolve(`${wallet}/package.json`); const {