1 | program = require 'commander'
|
2 | shell = require 'shelljs'
|
3 | nconf = require 'nconf'
|
4 | path = require 'path'
|
5 |
|
6 | nconf.file '.coco'
|
7 | setConfig = (name, value) ->
|
8 | if value?
|
9 | if typeof value is 'string'
|
10 | nconf.set name, value
|
11 | else
|
12 | nconf.clear name
|
13 |
|
14 | gulpdir = path.join __dirname, '..', 'gulp'
|
15 | templatedir = path.join __dirname, '..', 'template'
|
16 |
|
17 | program
|
18 | .version('0.0.1')
|
19 |
|
20 | program
|
21 | .command('create <name>')
|
22 | .description('create a coco project.')
|
23 | .action (name) ->
|
24 | oldDir = path.join templatedir, '*'
|
25 | newDir = path.join './', name
|
26 | shell.cp '-R', oldDir, newDir
|
27 | console.log 'To view coco project:'
|
28 | console.log " cd #{name}"
|
29 |
|
30 | program
|
31 | .command('compile')
|
32 | .description('compile app/*.coffee to app.js and copy files to cocos project folder.')
|
33 | .action ->
|
34 | shell.exec "gulp compile --cwd #{gulpdir} --silent --color", async: true
|
35 |
|
36 | program
|
37 | .command('clean')
|
38 | .description('clean cocos project folder.')
|
39 | .action ->
|
40 | shell.exec "gulp clean --cwd #{gulpdir} --silent --color", async: true
|
41 |
|
42 | program
|
43 | .command('publish')
|
44 | .description('publish cocos html5 project to folder.')
|
45 | .action ->
|
46 | shell.exec "gulp publish --cwd #{gulpdir} --silent --color", async: true
|
47 |
|
48 | program
|
49 | .command('doctor')
|
50 | .description('check coco project.')
|
51 | .action ->
|
52 | shell.exec "gulp doctor --cwd #{gulpdir} --silent --color", async: true
|
53 |
|
54 |
|
55 |
|
56 |
|
57 | program
|
58 | .command 'config'
|
59 | .description 'set config'
|
60 | .option '-c, --compile [value]', '*.coffee will compile to cocos2d project folder.'
|
61 | .option '-p, --publish [value]', 'cocos2d html5 release folder.'
|
62 | .action (command) ->
|
63 | setConfig 'compile', command.compile
|
64 | setConfig 'publish', command.publish
|
65 | nconf.save()
|
66 | console.log 'Project config done:'
|
67 | console.log nconf.load()
|
68 |
|
69 | program.parse(process.argv);
|