aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sol-doc
diff options
context:
space:
mode:
authorF. Eugene Aumson <gene@aumson.org>2018-09-21 22:56:17 +0800
committerF. Eugene Aumson <gene@aumson.org>2018-09-22 22:14:49 +0800
commit3e5d427d4e873080f2a369db7f844cbadd610fcb (patch)
tree214cd2cad9ce278aeac61f25a31f6ccccb5637cb /packages/sol-doc
parent301e491952707cdad8929cb918209a3792201a7d (diff)
downloaddexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.tar
dexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.tar.gz
dexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.tar.bz2
dexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.tar.lz
dexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.tar.xz
dexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.tar.zst
dexon-0x-contracts-3e5d427d4e873080f2a369db7f844cbadd610fcb.zip
feat: add sol-doc command-line interface
modified sol-compiler to output progress/warning/error/etc messages to stderr rather than stdout, so that sol-doc can put its output (and nothing else) to stdout. for posterity, added sol-doc cli usage as npm scripts to package.json.
Diffstat (limited to 'packages/sol-doc')
-rw-r--r--packages/sol-doc/package.json10
-rw-r--r--packages/sol-doc/src/cli.ts26
2 files changed, 34 insertions, 2 deletions
diff --git a/packages/sol-doc/package.json b/packages/sol-doc/package.json
index e3bc8753c..500b1cbde 100644
--- a/packages/sol-doc/package.json
+++ b/packages/sol-doc/package.json
@@ -11,7 +11,12 @@
"test:coverage": "nyc npm run test --all && yarn coverage:report:lcov",
"coverage:report:lcov": "nyc report --reporter=text-lcov > coverage/lcov.info",
"lint": "tslint --project . --format stylish",
- "clean": "shx rm -rf lib"
+ "clean": "shx rm -rf lib",
+ "generate-v2-protocol-docs": "(cd ../contracts/src/2.0.0; node ../../../../node_modules/.bin/sol-doc --contracts-dir . --contracts $(cd protocol; ls -C1 */*.sol */interfaces/*.sol) ) > v2.0.0.json",
+ "deploy-v2-protocol-docs": "aws --profile 0xproject s3 cp --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers --content-type application/json v2.0.0.json s3://staging-doc-jsons/contracts/"
+ },
+ "bin": {
+ "sol-doc": "bin/sol-doc.js"
},
"repository": "https://github.com/0xProject/0x-monorepo.git",
"author": "F. Eugene Aumson",
@@ -21,7 +26,8 @@
"@0xproject/types": "^1.0.1-rc.6",
"@0xproject/utils": "^1.0.5",
"ethereum-types": "^1.0.4",
- "lodash": "^4.17.10"
+ "lodash": "^4.17.10",
+ "yargs": "^12.0.2"
},
"devDependencies": {
"@0xproject/tslint-config": "^1.0.6",
diff --git a/packages/sol-doc/src/cli.ts b/packages/sol-doc/src/cli.ts
new file mode 100644
index 000000000..59fc185de
--- /dev/null
+++ b/packages/sol-doc/src/cli.ts
@@ -0,0 +1,26 @@
+import 'source-map-support/register';
+import * as yargs from 'yargs';
+
+import { generateSolDocAsync } from './solidity_doc_generator';
+
+const JSON_TABWIDTH = 4;
+
+(async () => {
+ const argv = yargs
+ .option('contracts-dir', {
+ type: 'string',
+ description: 'path of contracts directory to compile',
+ })
+ .option('contracts', {
+ type: 'string',
+ description: 'comma separated list of contracts to compile',
+ })
+ .demandOption('contracts-dir')
+ .array('contracts')
+ .help().argv;
+ process.stdout.write(
+ JSON.stringify(await generateSolDocAsync(argv.contractsDir, argv.contracts), null, JSON_TABWIDTH),
+ );
+})().catch(err => {
+ throw err;
+});