balena-cli/gulpfile.coffee

68 lines
1.7 KiB
CoffeeScript
Raw Normal View History

2014-12-30 17:12:18 +00:00
mkdirp = require('mkdirp')
2014-10-31 13:48:53 +00:00
path = require('path')
2014-10-31 13:37:29 +00:00
gulp = require('gulp')
mocha = require('gulp-mocha')
2014-12-30 13:44:03 +00:00
coffee = require('gulp-coffee')
markedMan = require('gulp-marked-man')
2014-10-31 13:48:53 +00:00
coffeelint = require('gulp-coffeelint')
2014-12-30 17:12:18 +00:00
shell = require('gulp-shell')
2014-10-31 13:37:29 +00:00
mochaNotifierReporter = require('mocha-notifier-reporter')
2014-12-30 17:12:18 +00:00
packageJSON = require('./package.json')
2014-10-31 13:37:29 +00:00
OPTIONS =
2014-10-31 13:50:50 +00:00
config:
coffeelint: path.join(__dirname, 'coffeelint.json')
files:
coffee: [ 'lib/**/*.coffee', 'gulpfile.coffee' ]
app: [ 'lib/**/*.coffee', '!lib/**/*.spec.coffee' ]
tests: 'tests/**/*.spec.coffee'
2014-12-30 16:26:19 +00:00
json: [ 'lib/**/*.json', 'package.json' ]
man: 'man/**/*.md'
directories:
man: 'man/'
2014-12-30 13:44:03 +00:00
build: 'build/'
gulp.task 'man', ->
gulp.src(OPTIONS.files.man)
.pipe(markedMan())
.pipe(gulp.dest(OPTIONS.directories.man))
2014-10-31 13:37:29 +00:00
gulp.task 'test', ->
2014-10-31 13:50:50 +00:00
gulp.src(OPTIONS.files.tests, read: false)
.pipe(mocha({
reporter: mochaNotifierReporter.decorate('landing')
2014-10-31 13:50:50 +00:00
}))
2014-10-31 13:37:29 +00:00
2014-12-30 17:12:18 +00:00
gulp.task 'coffee', [ 'test', 'lint' ], ->
2014-12-30 13:44:03 +00:00
gulp.src(OPTIONS.files.app)
.pipe(coffee())
.pipe(gulp.dest(OPTIONS.directories.build))
gulp.task 'json', ->
gulp.src(OPTIONS.files.json)
.pipe(gulp.dest(OPTIONS.directories.build))
2014-10-31 13:48:53 +00:00
gulp.task 'lint', ->
2014-10-31 13:50:50 +00:00
gulp.src(OPTIONS.files.coffee)
.pipe(coffeelint({
optFile: OPTIONS.config.coffeelint
}))
.pipe(coffeelint.reporter())
2014-10-31 13:48:53 +00:00
2014-12-30 17:12:18 +00:00
gulp.task 'release', [ 'coffee', 'json' ], ->
mkdirp.sync('build/Release')
gulp.src('')
.pipe(shell "jx package app.js Release/#{packageJSON.name} -native", {
cwd: path.join(process.cwd(), OPTIONS.directories.build)
})
2014-12-30 13:44:03 +00:00
gulp.task 'build', [
'lint'
'test'
'man'
]
2014-10-31 13:48:53 +00:00
gulp.task 'watch', [ 'test', 'lint' ], ->
2014-11-19 12:45:40 +00:00
gulp.watch([ OPTIONS.files.coffee, OPTIONS.files.json ], [ 'test', 'lint' ])
gulp.watch([ OPTIONS.files.man ], [ 'man' ])