diff --git a/packages/builders/scripts/inter-protocol/replace-feeDistributor-combo.js b/packages/builders/scripts/inter-protocol/replace-feeDistributor-combo.js index 84e2e1f5c38..8708ff8103e 100644 --- a/packages/builders/scripts/inter-protocol/replace-feeDistributor-combo.js +++ b/packages/builders/scripts/inter-protocol/replace-feeDistributor-combo.js @@ -1,4 +1,4 @@ -import { makeHelpers } from '@agoric/deploy-script-support'; +import { parseScriptArgs, makeHelpers } from '@agoric/deploy-script-support'; import { getManifestForReplaceFeeDistributor } from '@agoric/inter-protocol/src/proposals/replace-fee-distributor.js'; import { SECONDS_PER_HOUR } from '@agoric/inter-protocol/src/proposals/econ-behaviors.js'; @@ -47,31 +47,10 @@ export const defaultProposalBuilder = async (_, opts) => { }); }; -const Usage = `agoric run replace-feedDistributor-combo.js ${[...knownVariants, ''].join(' | ')}`; - /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */ export default async (homeP, endowments) => { - const { scriptArgs } = endowments; - const variantOrConfig = scriptArgs?.[0]; - console.log('replace-feeDistributor-combo', variantOrConfig); - - const opts = {}; - - if (typeof variantOrConfig === 'string') { - if (variantOrConfig[0] === '{') { - try { - opts.config = JSON.parse(variantOrConfig); - } catch (err) { - throw Error(`Failed to parse config argument ${variantOrConfig}`); - } - } else { - opts.variant = variantOrConfig; - } - } else { - console.error(Usage); - throw Error(Usage); - } - + const name = 'replace-feeDistributor-combo'; + const opts = parseScriptArgs(endowments, name, knownVariants); const { writeCoreEval } = await makeHelpers(homeP, endowments); await writeCoreEval('replace-feeDistributor', utils => diff --git a/packages/builders/scripts/vats/upgrade-mintHolder.js b/packages/builders/scripts/vats/upgrade-mintHolder.js index 18cb47854c2..6f8b8c72012 100644 --- a/packages/builders/scripts/vats/upgrade-mintHolder.js +++ b/packages/builders/scripts/vats/upgrade-mintHolder.js @@ -1,4 +1,4 @@ -import { makeHelpers } from '@agoric/deploy-script-support'; +import { makeHelpers, parseScriptArgs } from '@agoric/deploy-script-support'; import { getManifestForUpgradingMintHolder } from '@agoric/vats/src/proposals/upgrade-mintHolder-proposal.js'; const configurations = { @@ -94,30 +94,9 @@ export const defaultProposalBuilder = async ({ publishRef, install }, opts) => { }); }; -const Usage = `agoric run upgrade-mintHolder.js ${[...knownVariants, ''].join(' | ')}`; - /** @type {import('@agoric/deploy-script-support/src/externalTypes.js').DeployScriptFunction} */ export default async (homeP, endowments) => { - const { scriptArgs } = endowments; - const variantOrConfig = scriptArgs?.[0]; - console.log('upgrade-mintHolder', variantOrConfig); - - const opts = {}; - - if (typeof variantOrConfig === 'string') { - if (variantOrConfig[0] === '{') { - try { - opts.config = JSON.parse(variantOrConfig); - } catch (err) { - throw Error(`Failed to parse config argument ${variantOrConfig}`); - } - } else { - opts.variant = variantOrConfig; - } - } else { - console.error(Usage); - throw Error(Usage); - } + const opts = parseScriptArgs(endowments, 'upgrade-mintHolder', knownVariants); const { writeCoreEval } = await makeHelpers(homeP, endowments); await writeCoreEval(`upgrade-mintHolder`, utils => diff --git a/packages/deploy-script-support/src/parseCoreEvalArgs.js b/packages/deploy-script-support/src/parseCoreEvalArgs.js new file mode 100644 index 00000000000..cfec84d40cc --- /dev/null +++ b/packages/deploy-script-support/src/parseCoreEvalArgs.js @@ -0,0 +1,33 @@ +/** + * To customize proposals for multiple environments, we pass the "variant" + * identifier in scriptArgs. The variant must match a knownVariant. + * + * @param {import('./externalTypes.js').DeployScriptEndownments} endowments + * @param {string} name a name to use in error messages or Usage suggestions. + * @param {string[]} knownVariants + */ +export const parseScriptArgs = async (endowments, name, knownVariants) => { + const { scriptArgs } = endowments; + const variantOrConfig = scriptArgs?.[0]; + console.log(`${name}`, variantOrConfig); + + const Usage = `agoric run ${name}.js ${[...knownVariants, ''].join(' | ')}`; + const opts = {}; + + if (typeof variantOrConfig === 'string') { + if (variantOrConfig[0] === '{') { + try { + opts.config = JSON.parse(variantOrConfig); + } catch (err) { + throw Error(`Failed to parse config argument ${variantOrConfig}`); + } + } else { + opts.variant = variantOrConfig; + } + } else { + console.error(Usage); + throw Error(Usage); + } + + return opts; +};