UNPKG

locklift

Version:

Node JS framework for working with Ever contracts. Inspired by Truffle and Hardhat. Helps you to build, test, run and maintain your smart contracts.

52 lines (51 loc) 2.37 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const commander_1 = require("commander"); require("ts-node"); const config_1 = require("../../config"); const build_1 = require("../steps/build"); const initLocklift_1 = require("../steps/initLocklift"); const path_1 = __importDefault(require("path")); const program = new commander_1.Command(); program .name("run") .description("Run arbitrary locklift script") .option("--disable-build", "Disable automatic contracts build", false) .option("-c, --contracts <contracts>", "Path to the contracts folder", "contracts") .option("-b, --build <build>", "Path to the build folder", "build") .option("-f, --force", "Force build contracts", false) .option("--disable-include-path", "Disables including node_modules. Use this with old compiler versions", false) .option("-p, --params [value...]", "Parameters to pass to the script") .option("-n, --network <network>", "Network to use, choose from configuration", config_1.LOCKLIFT_NETWORK_NAME) .addOption(new commander_1.Option("--config <config>", "Path to the config file") .default(() => (0, config_1.loadConfig)("locklift.config.ts")) .argParser(config => () => (0, config_1.loadConfig)(config))) .requiredOption("-s, --script <script>", "Script to run") .allowUnknownOption() .action(async (options) => { const config = options.config(); if (config.networks[options.network] === undefined) { console.error(`Can't find configuration for ${options.network} network!`); process.exit(1); } if (!options.disableBuild) { await (0, build_1.buildStep)(config, options, config.force); } // Initialize Locklift await (0, initLocklift_1.initLockliftStep)(config, options); // eslint-disable-next-line @typescript-eslint/no-require-imports const scriptContent = require(path_1.default.resolve(process.cwd(), options.script)); if (scriptContent.default) { await scriptContent .default(...options.params) .then(() => process.exit(0)) .catch((e) => { console.log(e); process.exit(1); }); } }); exports.default = program;