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.

49 lines (40 loc) 1.64 kB
import { Command, Option } from "commander"; import { loadConfig } from "../../config"; import { Builder } from "../builder"; import fs from "fs-extra"; import { compilerConfigResolver } from "../builder/utils"; import { logger } from "../../logger"; const program = new Command(); program .name("gendoc") .description("Generate smart contracts documentation from the natspec comments") .option("-c, --contracts <contracts>", "Path to the contracts folder", "contracts") .option("-b, --build <build>", "Path to the build folder", "build") .option("--disable-include-path", "Disables including node_modules. Use this with old compiler versions", false) .option("-d, --docs <docs>", "Path to the docs folder", "docs") .option("-i, --include <include>", "Generate docs only for contracts, whose name matches the patters", ".*") .addOption( new Option("-m, --mode <mode>", "Mode for compiler doc generator").default("devdoc").choices(["devdoc", "userdoc"]), ) .addOption( new Option("--config <config>", "Path to the config file") .default(() => loadConfig("locklift.config.ts")) .argParser(async config => () => loadConfig(config)), ) .action(async options => { const config = await options.config(); fs.ensureDirSync(options.build); fs.ensureDirSync(options.docs); const builder = Builder.create(await compilerConfigResolver(config), options); try { const status = builder.buildDocs(); if (!status) { process.exit(1); } else { process.exit(0); } } catch (e) { logger.printError(e); } }); export default program;