]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / init-package-json / node_modules / promzard / example / npm-init / init-input.js
1 var fs = require('fs')
2 var path = require('path');
3
4 module.exports = {
5   "name" : prompt('name',
6     typeof name === 'undefined'
7     ? basename.replace(/^node-|[.-]js$/g, ''): name),
8   "version" : prompt('version', typeof version !== "undefined"
9                               ? version : '0.0.0'),
10   "description" : (function () {
11       if (typeof description !== 'undefined' && description) {
12         return description
13       }
14       var value;
15       try {
16           var src = fs.readFileSync('README.md', 'utf8');
17           value = src.split('\n').filter(function (line) {
18               return /\s+/.test(line)
19                   && line.trim() !== basename.replace(/^node-/, '')
20                   && !line.trim().match(/^#/)
21               ;
22           })[0]
23               .trim()
24               .replace(/^./, function (c) { return c.toLowerCase() })
25               .replace(/\.$/, '')
26           ;
27       }
28       catch (e) {
29         try {
30           // Wouldn't it be nice if that file mattered?
31           var d = fs.readFileSync('.git/description', 'utf8')
32         } catch (e) {}
33         if (d.trim() && !value) value = d
34       }
35       return prompt('description', value);
36   })(),
37   "main" : (function () {
38     var f
39     try {
40       f = fs.readdirSync(dirname).filter(function (f) {
41         return f.match(/\.js$/)
42       })
43       if (f.indexOf('index.js') !== -1)
44         f = 'index.js'
45       else if (f.indexOf('main.js') !== -1)
46         f = 'main.js'
47       else if (f.indexOf(basename + '.js') !== -1)
48         f = basename + '.js'
49       else
50         f = f[0]
51     } catch (e) {}
52
53     return prompt('entry point', f || 'index.js')
54   })(),
55   "bin" : function (cb) {
56     fs.readdir(dirname + '/bin', function (er, d) {
57       // no bins
58       if (er) return cb()
59       // just take the first js file we find there, or nada
60       return cb(null, d.filter(function (f) {
61         return f.match(/\.js$/)
62       })[0])
63     })
64   },
65   "directories" : function (cb) {
66     fs.readdir('.', function (er, dirs) {
67       if (er) return cb(er)
68       var res = {}
69       dirs.forEach(function (d) {
70         switch (d) {
71           case 'example': case 'examples': return res.example = d
72           case 'test': case 'tests': return res.test = d
73           case 'doc': case 'docs': return res.doc = d
74           case 'man': return res.man = d
75         }
76       })
77       if (Object.keys(res).length === 0) res = undefined
78       return cb(null, res)
79     })
80   },
81   "dependencies" : typeof dependencies !== 'undefined' ? dependencies
82     : function (cb) {
83       fs.readdir('node_modules', function (er, dir) {
84         if (er) return cb()
85         var deps = {}
86         var n = dir.length
87         dir.forEach(function (d) {
88           if (d.match(/^\./)) return next()
89           if (d.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/))
90             return next()
91           fs.readFile('node_modules/' + d + '/package.json', function (er, p) {
92             if (er) return next()
93             try { p = JSON.parse(p) } catch (e) { return next() }
94             if (!p.version) return next()
95             deps[d] = '~' + p.version
96             return next()
97           })
98         })
99         function next () {
100           if (--n === 0) return cb(null, deps)
101         }
102       })
103     },
104   "devDependencies" : typeof devDependencies !== 'undefined' ? devDependencies
105     : function (cb) {
106       // same as dependencies but for dev deps
107       fs.readdir('node_modules', function (er, dir) {
108         if (er) return cb()
109         var deps = {}
110         var n = dir.length
111         dir.forEach(function (d) {
112           if (d.match(/^\./)) return next()
113           if (!d.match(/^(expresso|mocha|tap|coffee-script|coco|streamline)$/))
114             return next()
115           fs.readFile('node_modules/' + d + '/package.json', function (er, p) {
116             if (er) return next()
117             try { p = JSON.parse(p) } catch (e) { return next() }
118             if (!p.version) return next()
119             deps[d] = '~' + p.version
120             return next()
121           })
122         })
123         function next () {
124           if (--n === 0) return cb(null, deps)
125         }
126       })
127     },
128   "scripts" : (function () {
129     // check to see what framework is in use, if any
130     try { var d = fs.readdirSync('node_modules') }
131     catch (e) { d = [] }
132     var s = typeof scripts === 'undefined' ? {} : scripts
133
134     if (d.indexOf('coffee-script') !== -1)
135       s.prepublish = prompt('build command',
136                             s.prepublish || 'coffee src/*.coffee -o lib')
137
138     var notest = 'echo "Error: no test specified" && exit 1'
139     function tx (test) {
140       return test || notest
141     }
142
143     if (!s.test || s.test === notest) {
144       if (d.indexOf('tap') !== -1)
145         s.test = prompt('test command', 'tap test/*.js', tx)
146       else if (d.indexOf('expresso') !== -1)
147         s.test = prompt('test command', 'expresso test', tx)
148       else if (d.indexOf('mocha') !== -1)
149         s.test = prompt('test command', 'mocha', tx)
150       else
151         s.test = prompt('test command', tx)
152     }
153
154     return s
155
156   })(),
157
158   "repository" : (function () {
159     try { var gconf = fs.readFileSync('.git/config') }
160     catch (e) { gconf = null }
161     if (gconf) {
162       gconf = gconf.split(/\r?\n/)
163       var i = gconf.indexOf('[remote "origin"]')
164       if (i !== -1) {
165         var u = gconf[i + 1]
166         if (!u.match(/^\s*url =/)) u = gconf[i + 2]
167         if (!u.match(/^\s*url =/)) u = null
168         else u = u.replace(/^\s*url = /, '')
169       }
170       if (u && u.match(/^git@github.com:/))
171         u = u.replace(/^git@github.com:/, 'git://github.com/')
172     }
173
174     return prompt('git repository', u)
175   })(),
176
177   "keywords" : prompt(function (s) {
178     if (!s) return undefined
179     if (Array.isArray(s)) s = s.join(' ')
180     if (typeof s !== 'string') return s
181     return s.split(/[\s,]+/)
182   }),
183   "author" : config['init.author.name']
184     ? {
185         "name" : config['init.author.name'],
186         "email" : config['init.author.email'],
187         "url" : config['init.author.url']
188       }
189     : undefined,
190   "license" : prompt('license', 'BSD')
191 }