gulp-turbo
Version:
前端工作流(requirejs/jade/stylus/coffee),完整强缩进工作流,同步异步模板复用,高效率适合初期前端团队
39 lines (34 loc) • 1.58 kB
text/coffeescript
gulp = require 'gulp'
fs = require 'fs'
util = require 'gulp-util'
argv = require('yargs').argv
execSync = require('child_process').execSync
# task svnChanges
# e.g: gulp svnChanges --svn /Users/kings/didi/svn_static --ver 150518
# 参数说明:
# --svn 需要读取的svn本地文件所在目录 必须
# --ver 指定需要比较的svn版本号 默认比较最后一个提交记录
# --append 需要再每个文件名后追加的字符
# --separate 分隔符,默认一个空格
gulp.task 'svnChanges', ()->
pkg = global.pkg
svnDir = argv.svn
lastVersion = argv.ver
append = argv.append
separate = argv.separate || ' '
svnUpdate = execSync('svn update', {cwd: svnDir, encoding: 'utf8'})
svnInfo = execSync('svn info', {cwd: svnDir, encoding: 'utf8'})
svnRoot = svnInfo.match(/Repository\sRoot:\s([^\s]+)/)[1]
revision = lastVersion ||svnInfo.match(/Revision:\s(\d+)/)[1]
resultFileName = 'svn_changelist_'+revision+ '.txt'
append = append || revision
if lastVersion
result = execSync('svn log -r ' + lastVersion + ' -v', {cwd: svnDir, encoding: 'utf8'})
else
result = execSync('svn log -l 1 -v', {cwd: svnDir, encoding: 'utf8'})
str = ''
dataArr = result.split('\n').slice(3,-4).forEach (item)->
if /[^\/]+\.\w+\s?$/.test(item) && !/\s+D\s+/.test(item)
str += svnRoot + item.replace(/^[^\/]+(\/.*)\s?$/,'$1')+separate+append+'\n'
fs.writeFileSync './'+resultFileName, str, {encoding: 'utf8'}
util.log('*****created change file list: ' + resultFileName + '*****');