aboutsummaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/scripts/index-build.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/scripts/index-build.js')
-rwxr-xr-xdeps/node/deps/npm/scripts/index-build.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/deps/node/deps/npm/scripts/index-build.js b/deps/node/deps/npm/scripts/index-build.js
new file mode 100755
index 00000000..e782716d
--- /dev/null
+++ b/deps/node/deps/npm/scripts/index-build.js
@@ -0,0 +1,58 @@
+#!/usr/bin/env node
+var fs = require('fs')
+var path = require('path')
+var root = path.resolve(__dirname, '..')
+var glob = require('glob')
+var conversion = { 'cli': 1, 'api': 3, 'files': 5, 'misc': 7 }
+
+glob(root + '/{README.md,doc/*/*.md}', function (er, files) {
+ if (er) throw er
+
+ output(files.map(function (f) {
+ var b = path.basename(f)
+ if (b === 'README.md') return [0, b]
+ if (b === 'index.md') return null
+ var s = conversion[path.basename(path.dirname(f))]
+ return [s, f]
+ }).filter(function (f) {
+ return f
+ }).sort(function (a, b) {
+ return (a[0] === b[0])
+ ? (path.basename(a[1]) === 'npm.md' ? -1
+ : path.basename(b[1]) === 'npm.md' ? 1
+ : a[1] > b[1] ? 1 : -1)
+ : a[0] - b[0]
+ }))
+})
+
+function output (files) {
+ console.log(
+ 'npm-index(7) -- Index of all npm documentation\n' +
+ '==============================================\n')
+
+ writeLines(files, 0)
+ writeLines(files, 1, 'Command Line Documentation', 'Using npm on the command line')
+ writeLines(files, 3, 'API Documentation', 'Using npm in your Node programs')
+ writeLines(files, 5, 'Files', 'File system structures npm uses')
+ writeLines(files, 7, 'Misc', 'Various other bits and bobs')
+}
+
+function writeLines (files, sxn, heading, desc) {
+ if (heading) {
+ console.log('## %s\n\n%s\n', heading, desc)
+ }
+ files.filter(function (f) {
+ return f[0] === sxn
+ }).forEach(writeLine)
+}
+
+function writeLine (sd) {
+ var sxn = sd[0] || 1
+ var doc = sd[1]
+ var d = path.basename(doc, '.md')
+
+ var content = fs.readFileSync(doc, 'utf8').split('\n')[0].split('-- ')[1]
+
+ console.log('### %s(%d)\n', d, sxn)
+ console.log(content + '\n')
+}