Skip to content

Commit ab32d81

Browse files
committed
Merge pull request #9 from bguiz/feature/cli
=BG= begin parsing command line arguments using yargs
2 parents 46dc6d9 + cf81891 commit ab32d81

File tree

6 files changed

+52
-34
lines changed

6 files changed

+52
-34
lines changed

bin/cli-args.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
'use strict';
2+
3+
var yargs = require('yargs');
4+
var config = require('../lib/config/config');
5+
6+
var args = yargs
7+
.describe('p', 'Define a port number when serving files')
8+
.alias('p', 'port')
9+
.default('p', config.getServerHttpPort())
10+
.describe('v', 'Display version number')
11+
.alias('v', 'version')
12+
.boolean('v')
13+
.describe('n', 'Name of the project to create or work on')
14+
.alias('n', 'name')
15+
.string('n')
16+
.usage('Angularity is an opinionated build tool for AngularJs projects.')
17+
.wrap(config.getConsoleWidth());
18+
module.exports = args;

bin/cli.js

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ var path = require('path'),
1414
prettyTime = require('pretty-hrtime');
1515

1616
var mainMenu = require('../lib/cli/mainMenu');
17-
1817
require('../index');
1918

2019
var generator = require('../lib/generator/generator');
@@ -33,29 +32,19 @@ gulp.on('task_stop', function (e) {
3332
);
3433
});
3534

36-
// expect the second argument to be the task name
37-
var taskName = process.argv[2];
38-
switch(taskName) {
39-
40-
// with no arguments, prompt the main menu.
41-
case undefined:
42-
mainMenu.prompt();
43-
break;
44-
45-
// allow a version command with `angularity -v`
46-
case 'v':
47-
case '-v':
48-
var packagePath = path.join(__dirname, '..', 'package.json');
49-
var version = require(packagePath).version;
50-
console.log('angularity:', version);
51-
break;
52-
53-
// use the project generator with `angularity generate <name>`
54-
case 'generate':
55-
generator.util.generateProject(process.argv[3]);
56-
break;
57-
58-
// allow the default gulp tasks to be run on the global cli
59-
default:
60-
gulp.start(gulp.hasTask(taskName) ? taskName : 'default');
61-
}
35+
// gulp tasks can access argv using this same method
36+
var argv = require('./cli-args').argv;
37+
38+
var taskName = (!!argv._) ? argv._[0] : undefined;
39+
40+
if (argv.version) {
41+
var packagePath = path.join(__dirname, '..', 'package.json');
42+
var version = require(packagePath).version;
43+
console.log('angularity:', version);
44+
}
45+
else if (!taskName) {
46+
mainMenu.prompt();
47+
}
48+
else {
49+
gulp.start(gulp.hasTask(taskName) ? taskName : 'default');
50+
}

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"bower-directory": "latest",
3939
"browser-sync": "latest",
4040
"browserify": "latest",
41+
"browserify-ngannotate": "latest",
4142
"browserify-transform-tools": "latest",
4243
"chalk": "latest",
4344
"combined-stream": "latest",
@@ -69,13 +70,12 @@
6970
"lodash.defaults": "latest",
7071
"lodash.flatten": "latest",
7172
"lodash.merge": "latest",
72-
"lodash.template": "latest",
7373
"lodash.reduce": "latest",
74+
"lodash.template": "latest",
7475
"mime": "latest",
7576
"minifyify": "latest",
7677
"minimatch": "latest",
7778
"mold-source-map": "latest",
78-
"browserify-ngannotate": "latest",
7979
"node-bourbon": "latest",
8080
"node-sass": "latest",
8181
"pretty-hrtime": "latest",
@@ -90,7 +90,8 @@
9090
"stream-spigot": "latest",
9191
"stringify": "latest",
9292
"through-pipes": "latest",
93-
"through2": "latest"
93+
"through2": "latest",
94+
"yargs": "latest"
9495
},
9596
"devDependencies": {
9697
"jasmine-node": "latest",

tasks/generate.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'use strict';
2+
3+
var gulp = require('gulp');
4+
var argv = require('../bin/cli-args').argv;
5+
var generator = require('../lib/generator/generator');
6+
7+
gulp.task('generate', [], function() {
8+
generator.util.generateProject(argv.name);
9+
});

tasks/server.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ var config = require('../lib/config/config'),
88
hr = require('../lib/util/hr'),
99
streams = require('../lib/config/streams');
1010

11-
var HTTP_PORT = config.getServerHttpPort();
11+
var argv = require('../bin/cli-args').argv;
12+
13+
var HTTP_PORT = argv.port;
1214
var CONSOLE_WIDTH = config.getConsoleWidth();
1315

1416
gulp.task('server', ['build'], function () {
@@ -29,4 +31,4 @@ gulp.task('reload', function () {
2931
console.log(hr('-', CONSOLE_WIDTH, 'reload'));
3032
gutil.log('serving on port:', HTTP_PORT);
3133
browserSync.reload();
32-
});
34+
});

tasks/watch.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ var config = require('../lib/config/config'),
1111
var CONSOLE_WIDTH = config.getConsoleWidth();
1212

1313
gulp.task('watch', ['server'], function () {
14-
1514
// enqueue actions to avoid multiple trigger
1615
var queue = watchSequence(500, function () {
1716
console.log(hr('\u2591', CONSOLE_WIDTH));
@@ -42,4 +41,4 @@ gulp.task('watch', ['server'], function () {
4241
name : 'TEST',
4342
emitOnGlob: false
4443
}, queue.getHandler('test'));
45-
});
44+
});

0 commit comments

Comments
 (0)