1 | #!/usr/bin/env node
|
2 |
|
3 | "use strict";
|
4 |
|
5 | var fs = require('fs')
|
6 | var path = require('path')
|
7 | var program = require('commander')
|
8 | var spawn = require('win-fork')
|
9 |
|
10 | var pkg = require(path.resolve(__dirname, '../package.json'))
|
11 |
|
12 |
|
13 | program
|
14 | .version(pkg.version)
|
15 |
|
16 | program.on('--help', function() {
|
17 | console.log(' Examples:')
|
18 | console.log('')
|
19 | console.log(' $ mo server # start mosaics server')
|
20 | console.log(' $ mo publish # publish your mosaic')
|
21 | console.log(' $ mo install # download mosaic or any brick source')
|
22 | console.log('')
|
23 | })
|
24 |
|
25 | program.parse(process.argv)
|
26 |
|
27 |
|
28 | var args = process.argv.slice(3)
|
29 | var cmd = program.args[0]
|
30 |
|
31 |
|
32 | var aliases = {
|
33 | s: 'server',
|
34 | serve: 'server'
|
35 | }
|
36 |
|
37 | function alias(cmd) {
|
38 | return aliases[cmd] || cmd
|
39 | }
|
40 |
|
41 |
|
42 | var bin = 'mosaic-' + alias(cmd)
|
43 | var local = path.join(__dirname, bin)
|
44 |
|
45 |
|
46 | if (fs.existsSync(local)) bin = local
|
47 | else {
|
48 | process.stdout.write(program.helpInformation());
|
49 | program.emit('--help');
|
50 | process.exit();
|
51 | }
|
52 |
|
53 | var proc = spawn(bin, args, { stdio: 'inherit', customFds: [0, 1, 2] })
|
54 |
|
55 | proc.on('close', function(code){
|
56 | process.exit(code)
|
57 | }) |
\ | No newline at end of file |