summaryrefslogtreecommitdiff
path: root/deps/npm/scripts/index-build.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/scripts/index-build.js')
-rw-r--r--deps/npm/scripts/index-build.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/deps/npm/scripts/index-build.js b/deps/npm/scripts/index-build.js
new file mode 100644
index 0000000000..b3c19a03a1
--- /dev/null
+++ b/deps/npm/scripts/index-build.js
@@ -0,0 +1,62 @@
+#!/usr/bin/env node
+var fs = require("fs")
+ , path = require("path")
+ , cli = path.resolve(__dirname, "..", "doc", "cli")
+ , clidocs = null
+ , api = path.resolve(__dirname, "..", "doc", "api")
+ , apidocs = null
+ , readme = path.resolve(__dirname, "..", "README.md")
+
+fs.readdir(cli, done("cli"))
+fs.readdir(api, done("api"))
+
+function done (which) { return function (er, docs) {
+ if (er) throw er
+ if (which === "api") apidocs = docs
+ else clidocs = docs
+
+ if (apidocs && clidocs) next()
+}}
+
+function filter (d) {
+ return d !== "index.md"
+ && d.charAt(0) !== "."
+ && d.match(/\.md$/)
+}
+
+function next () {
+ console.log(
+ "npm-index(1) -- Index of all npm documentation\n" +
+ "==============================================\n")
+
+ apidocs = apidocs.filter(filter).map(function (d) {
+ return [3, path.resolve(api, d)]
+ })
+
+ clidocs = clidocs.filter(filter).map(function (d) {
+ return [1, path.resolve(cli, d)]
+ })
+
+ writeLine([1, readme])
+
+ console.log("# Command Line Documentation")
+
+ clidocs.forEach(writeLine)
+
+ console.log("# API Documentation")
+ apidocs.forEach(writeLine)
+}
+
+function writeLine (sd) {
+ var sxn = sd[0]
+ , doc = sd[1]
+ , d = path.basename(doc, ".md")
+ , s = fs.lstatSync(doc)
+
+ if (s.isSymbolicLink()) return
+
+ var content = fs.readFileSync(doc, "utf8").split("\n")[0].split("--")[1]
+
+ console.log("## npm-%s(%d)\n", d, sxn)
+ console.log(content + "\n")
+}