@agoric/deploy-script-support
Version:
Helpers and other support for writing deploy scripts
37 lines (32 loc) • 1.14 kB
JavaScript
/**
* 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];
const variantOrConfig =
scriptArgs && scriptArgs.length > 0 ? scriptArgs : undefined;
console.log(`${name}`, variantOrConfig);
const Usage = `agoric run ${name}.js ${[...knownVariants, '<json-config>'].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;
};