Skip to content

Commit 3871765

Browse files
committed
fix(cli): cli now works properly
The CLI was completely rewrote. Changed dependency from yargs to commanderjs, which is cleaner, faster and has no dependencies. Also added a complete testsuite for the cli. Closes #893, #894
1 parent 612dad0 commit 3871765

24 files changed

Lines changed: 926 additions & 501 deletions

Gruntfile.js

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ module.exports = function (grunt) {
1313
pkg: grunt.file.readJSON('package.json'),
1414

1515
concat: {
16-
options: {
17-
sourceMap: true,
18-
banner: ';/*! <%= pkg.name %> v <%= pkg.version %> - <%= grunt.template.today("dd-mm-yyyy") %> */\n(function(){\n',
19-
footer: '}).call(this);\n'
20-
},
2116
dist: {
17+
options: {
18+
sourceMap: true,
19+
banner: ';/*! <%= pkg.name %> v <%= pkg.version %> - <%= grunt.template.today("dd-mm-yyyy") %> */\n(function(){\n',
20+
footer: '}).call(this);\n'
21+
},
2222
src: [
2323
'src/options.js',
2424
'src/showdown.js',
@@ -30,6 +30,12 @@ module.exports = function (grunt) {
3030
],
3131
dest: 'dist/<%= pkg.name %>.js'
3232
},
33+
cli: {
34+
src: [
35+
'src/cli/cli.js'
36+
],
37+
dest: 'bin/showdown.js'
38+
},
3339
test: {
3440
src: '<%= concat.dist.src %>',
3541
dest: '.build/<%= pkg.name %>.js',
@@ -42,14 +48,23 @@ module.exports = function (grunt) {
4248
clean: ['.build/'],
4349

4450
uglify: {
45-
options: {
46-
sourceMap: true,
47-
banner: '/*! <%= pkg.name %> v <%= pkg.version %> - <%= grunt.template.today("dd-mm-yyyy") %> */'
48-
},
4951
dist: {
52+
options: {
53+
sourceMap: true,
54+
banner: '/*! <%= pkg.name %> v <%= pkg.version %> - <%= grunt.template.today("dd-mm-yyyy") %> */'
55+
},
5056
files: {
5157
'dist/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
5258
}
59+
},
60+
cli: {
61+
options: {
62+
sourceMap: false,
63+
banner: '#!/usr/bin/env node'
64+
},
65+
files: {
66+
'bin/showdown.js': ['<%= concat.cli.dest %>']
67+
}
5368
}
5469
},
5570

@@ -164,6 +179,15 @@ module.exports = function (grunt) {
164179
ignoreLeaks: false,
165180
reporter: 'spec'
166181
}
182+
},
183+
cli: {
184+
src: 'test/node/testsuite.cli.js',
185+
options: {
186+
globals: ['should'],
187+
timeout: 3000,
188+
ignoreLeaks: false,
189+
reporter: 'spec'
190+
}
167191
}
168192
}
169193
};
@@ -227,19 +251,14 @@ module.exports = function (grunt) {
227251
grunt.task.run(['lint', 'concat:test', 'simplemocha:single', 'clean']);
228252
});
229253

230-
231-
/**
232-
* Test in Legacy Node
233-
*/
234-
grunt.registerTask('test-old', ['concat:test', 'simplemocha:node', 'clean']);
235-
236254
/**
237255
* Tasks for new node versions
238256
*/
239257
grunt.registerTask('test', ['clean', 'lint', 'concat:test', 'simplemocha:node', 'clean']);
258+
grunt.registerTask('test-cli', ['clean', 'lint', 'concat:test', 'simplemocha:cli', 'clean']);
240259
grunt.registerTask('performance', ['concat:test', 'performancejs', 'clean']);
241-
grunt.registerTask('build', ['test', 'concat:dist', 'uglify', 'endline']);
242-
grunt.registerTask('prep-release', ['build', 'generate-changelog']);
260+
grunt.registerTask('build', ['test', 'concat:dist', 'concat:cli', 'uglify:dist', 'uglify:cli', 'endline']);
261+
grunt.registerTask('prep-release', ['build', 'performance', 'generate-changelog']);
243262

244263
// Default task(s).
245264
grunt.registerTask('default', ['test']);

bin/showdown.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/showdown.js

Lines changed: 17 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/showdown.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/showdown.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/showdown.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)