115 lines
3.1 KiB
CoffeeScript
115 lines
3.1 KiB
CoffeeScript
gulp = require('gulp')
|
|
coffee = require('gulp-coffee')
|
|
concat = require('gulp-concat')
|
|
uglify = require 'gulp-uglify'
|
|
sourcemaps = require('gulp-sourcemaps')
|
|
browserify = require('gulp-browserify')
|
|
rename = require 'gulp-rename'
|
|
rimraf = require 'gulp-rimraf'
|
|
gulpif = require 'gulp-if'
|
|
ignore = require 'gulp-ignore'
|
|
git = require 'gulp-git'
|
|
debug = require 'gulp-debug'
|
|
coffeelint = require 'gulp-coffeelint'
|
|
mocha = require 'gulp-mocha'
|
|
run = require 'gulp-run'
|
|
ljs = require 'gulp-ljs'
|
|
plumber = require 'gulp-plumber'
|
|
cache = require 'gulp-cached'
|
|
coffeeify = require 'gulp-coffeeify'
|
|
exit = require 'gulp-exit'
|
|
|
|
gulp.task 'default', ['build_browser']
|
|
|
|
files =
|
|
lib : ['./lib/**/*.coffee']
|
|
browser : ['./lib/y.coffee','./lib/y-object.coffee']
|
|
test : ['./test/**/*test.coffee', '../y-*/test/*test.coffee']
|
|
#test : ['./test/Json_test.coffee', './test/Text_test.coffee']
|
|
gulp : ['./gulpfile.coffee']
|
|
examples : ['./examples/**/*.js']
|
|
other: ['./lib/**/*', './test/*']
|
|
|
|
files.all = []
|
|
for name,file_list of files
|
|
if name isnt 'build'
|
|
files.all = files.all.concat file_list
|
|
|
|
gulp.task 'deploy_nodejs', ->
|
|
gulp.src files.lib
|
|
.pipe sourcemaps.init()
|
|
.pipe coffee()
|
|
.pipe sourcemaps.write './'
|
|
.pipe gulp.dest 'build/node/'
|
|
.pipe gulpif '!**/', git.add({args : "-A"})
|
|
|
|
gulp.task 'deploy', ['mocha', 'build_browser', 'deploy_nodejs', 'lint', 'codo']
|
|
|
|
gulp.task 'build_browser', ->
|
|
gulp.src files.browser, { read: false }
|
|
.pipe plumber()
|
|
.pipe browserify
|
|
transform: ['coffeeify']
|
|
extensions: ['.coffee']
|
|
debug : true
|
|
.pipe rename
|
|
extname: ".js"
|
|
.pipe gulp.dest './build/browser/'
|
|
.pipe uglify()
|
|
.pipe gulp.dest '.'
|
|
|
|
gulp.src files.test, {read: false}
|
|
.pipe plumber()
|
|
.pipe browserify
|
|
transform: ['coffeeify']
|
|
extensions: ['.coffee']
|
|
debug: true
|
|
.pipe rename
|
|
extname: ".js"
|
|
dirname: "./"
|
|
.pipe gulp.dest './build/test/'
|
|
|
|
gulp.task 'build_node', ->
|
|
gulp.src files.lib
|
|
.pipe plumber()
|
|
.pipe coffee({bare:true})
|
|
.pipe gulp.dest './build/node'
|
|
|
|
gulp.task 'build', ['build_node', 'build_browser'], ->
|
|
|
|
gulp.task 'watch', ['build'], ->
|
|
gulp.watch files.all, ['build']
|
|
|
|
gulp.task 'mocha', ->
|
|
gulp.src files.test, { read: false }
|
|
.pipe mocha {reporter : 'list'}
|
|
.pipe exit()
|
|
|
|
gulp.task 'lint', ->
|
|
gulp.src files.all
|
|
.pipe ignore.include '**/*.coffee'
|
|
.pipe coffeelint {
|
|
"max_line_length":
|
|
"level": "ignore"
|
|
}
|
|
.pipe coffeelint.reporter()
|
|
|
|
gulp.task 'literate', ->
|
|
gulp.src files.examples
|
|
.pipe ljs { code : true }
|
|
.pipe rename
|
|
basename : "README"
|
|
extname : ".md"
|
|
.pipe gulp.dest 'examples/'
|
|
.pipe gulpif '!**/', git.add({args : "-A"})
|
|
|
|
gulp.task 'codo', [], ()->
|
|
command = './node_modules/codo/bin/codo -o "./doc" --name "yjs" --readme "README.md" --undocumented false --private true --title "yjs API" ./lib - LICENSE.txt '
|
|
run(command).exec()
|
|
|
|
gulp.task 'clean', ->
|
|
gulp.src ['./build/{browser,test,node}/**/*.{js,map}','./doc/'], { read: false }
|
|
.pipe rimraf()
|
|
|
|
gulp.task 'default', ['clean','build'], ->
|