From 1fc1de6df80dcc6db45e821fdacdc54737716304 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Mon, 18 Aug 2014 08:38:56 -0400 Subject: [PATCH] feature(gulp) mv to files --- gulp/cl.js | 23 ++++++ gulp/tasks/changelog.js | 79 ++++++++++++++++++++ gulp/tasks/docs.js | 51 +++++++++++++ gulp/tasks/package.js | 29 ++++++++ gulpfile.js | 160 ++-------------------------------------- 5 files changed, 189 insertions(+), 153 deletions(-) create mode 100644 gulp/cl.js create mode 100644 gulp/tasks/changelog.js create mode 100644 gulp/tasks/docs.js create mode 100644 gulp/tasks/package.js diff --git a/gulp/cl.js b/gulp/cl.js new file mode 100644 index 00000000..a6b5498d --- /dev/null +++ b/gulp/cl.js @@ -0,0 +1,23 @@ +(function() { + 'use strict'; + + exports.getVersion = function() { + var versionNew, + argv = process.argv, + length = argv.length - 1, + last = process.argv[length], + regExp = new RegExp('^--'), + isMatch = last.match(regExp); + + if (isMatch) + versionNew = last.substr(3); + + return versionNew; + }; + + exports.showVersionError = function() { + var msg = 'ERROR: version is missing. gulp package --v'; + + console.log(msg); + }; +})(); diff --git a/gulp/tasks/changelog.js b/gulp/tasks/changelog.js new file mode 100644 index 00000000..05283cb9 --- /dev/null +++ b/gulp/tasks/changelog.js @@ -0,0 +1,79 @@ +(function() { + 'use strict'; + + var DIR = '../../', + fs = require('fs'), + exec = require('child_process').exec, + + cl = require('../cl'), + Util = require(DIR + 'lib/util'), + Info = require(DIR + 'package'); + + module.exports = function() { + var version = 'v' + Info.version, + name = 'ChangeLog', + + gitTempl = 'git log {{ version }}..HEAD --pretty=format:"- %s" --grep {{ category }} | sed \'s/{{ category }}//g\'', + + gitFix = Util.render(gitTempl, { + category : 'fix' , + version : version + }), + + gitFeature = Util.render(gitTempl, { + category: 'feature', + version : version + }), + + versionNew = cl.getVersion(); + + if (versionNew) + versionNew = 'v' + versionNew; + else + versionNew = version + '?'; + + Util.exec.parallel([ + Util.exec.with(fs.readFile, name, 'utf8'), + Util.exec.with(exec, gitFix), + Util.exec.with(exec, gitFeature), + ], function(error, fileData, fixData, featureData) { + var DATA = 0, + STD_ERR = 1, + fix = fixData[DATA], + feature = featureData[DATA], + date = Util.getShortDate(), + head = date + ', ' + versionNew + '\n\n', + data = ''; + + if (fix || feature) { + data = head; + + if (fix) { + data += 'fix:' + '\n'; + data += fix + '\n\n'; + } + + if (feature) { + data += 'feature:' + '\n'; + data += feature + '\n\n'; + } + + data += '\n'; + data += fileData; + } + + error = error || fixData[STD_ERR] || featureData[STD_ERR]; + + if (error) + console.log(error); + else if (!data) + console.log('No new feature and fix commits from v', version); + else + fs.writeFile(name, data, function(error) { + var msg = 'changelog: done'; + + console.log(error || msg); + }); + }); + }; +})(); diff --git a/gulp/tasks/docs.js b/gulp/tasks/docs.js new file mode 100644 index 00000000..5b988757 --- /dev/null +++ b/gulp/tasks/docs.js @@ -0,0 +1,51 @@ +(function() { + 'use strict'; + + var DIR = '../../', + fs = require('fs'), + + cl = require('../cl'), + Util = require(DIR + 'lib/util'), + Info = require(DIR + 'package'); + + module.exports = function() { + var history = 'Version history\n---------------\n', + link = '//github.com/cloudcmd/archive/raw/master/cloudcmd', + template = '- *{{ date }}*, ' + + '**[v{{ version }}]' + + '(' + link + '-v{{ version }}.zip)**\n', + version = Info.version, + versionNew = cl.getVersion(); + + if (!versionNew) { + cl.showVersionError(); + } else { + replaceVersion('README.md', version, versionNew); + replaceVersion('HELP.md', version, versionNew, function() { + var historyNew = history + Util.render(template, { + date : Util.getShortDate, + version : versionNew + }); + + replaceVersion('HELP.md', history, historyNew); + }); + } + }; + + function replaceVersion(name, version, versionNew, callback) { + fs.readFile(name, 'utf8', function(error, data) { + if (error) { + console.log(error); + } else { + data = data.replace(version, versionNew); + + fs.writeFile(name, data, function(error) { + var msg = 'done: ' + name; + + console.log(error || msg); + Util.exec(callback); + }); + } + }); + } +})(); diff --git a/gulp/tasks/package.js b/gulp/tasks/package.js new file mode 100644 index 00000000..87f046f6 --- /dev/null +++ b/gulp/tasks/package.js @@ -0,0 +1,29 @@ +(function() { + 'use strict'; + + var DIR = '../../', + fs = require('fs'), + + cl = require('../cl'), + Info = require(DIR + 'package'); + + module.exports = function() { + var data, + version = Info.version, + versionNew = cl.getVersion(); + + if (!versionNew) { + cl.showVersionError(); + } else { + Info.version = versionNew; + data = JSON.stringify(Info, 0, 2) + '\n'; + Info.version = version; + + fs.writeFile('package.json', data, function(error) { + var msg = 'package: done'; + + console.log(error || msg); + }); + } + }; +})(); diff --git a/gulpfile.js b/gulpfile.js index d49160ec..b530ebe4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -7,17 +7,14 @@ mocha = require('gulp-mocha'), cloudfunc = require('./test/lib/cloudfunc.js'), - Util = require('./lib/util'), - fs = require('fs'), - exec = require('child_process').exec, - Info = require('./package'), - LIB = './lib/', + LIB = 'lib/', LIB_CLIENT = LIB + 'client/', LIB_SERVER = LIB + 'server/', Src = [ - './*.js', + '*.js', 'test/**/*.js', + 'gulp/**/*.js', LIB + '*.js', LIB_CLIENT + '/*.js', LIB_CLIENT + 'storage/*.js', @@ -27,6 +24,10 @@ '!' + LIB_CLIENT + 'jquery.js' ]; + ['changelog', 'docs', 'package'].forEach(function(name) { + gulp.task(name, require('./gulp/tasks/' + name)); + }); + gulp.task('jshint', function() { gulp.src(Src) .pipe(jshint()) @@ -50,122 +51,6 @@ .on('error', onError); }); - gulp.task('changelog', function() { - var version = 'v' + Info.version, - name = 'ChangeLog', - - gitTempl = 'git log {{ version }}..HEAD --pretty=format:"- %s" --grep {{ category }} | sed \'s/{{ category }}//g\'', - - gitFix = Util.render(gitTempl, { - category : 'fix' , - version : version - }), - - gitFeature = Util.render(gitTempl, { - category: 'feature', - version : version - }), - - versionNew = getNewVersion(); - - if (versionNew) - versionNew = 'v' + versionNew; - else - versionNew = version + '?'; - - Util.exec.parallel([ - Util.exec.with(fs.readFile, name, 'utf8'), - Util.exec.with(exec, gitFix), - Util.exec.with(exec, gitFeature), - ], function(error, fileData, fixData, featureData) { - var DATA = 0, - STD_ERR = 1, - fix = fixData[DATA], - feature = featureData[DATA], - date = Util.getShortDate(), - head = date + ', ' + versionNew + '\n\n', - data = ''; - - console.log(fix || feature); - - if (fix || feature) { - data = head; - - if (fix) { - data += 'fix:' + '\n'; - data += fix + '\n\n'; - } - - if (feature) { - data += 'feature:' + '\n'; - data += feature + '\n\n'; - } - - data += '\n'; - data += fileData; - } - - error = error || fixData[STD_ERR] || featureData[STD_ERR]; - - if (error) - console.log(error); - else if (!data) - console.log('No new feature and fix commits from v', version); - else - fs.writeFile(name, data, function(error) { - var msg = 'changelog: done'; - - console.log(error || msg); - }); - }); - }); - - gulp.task('package', function() { - var data, - msg = 'ERROR: version is missing. gulp package --v', - version = Info.version, - versionNew = getNewVersion(); - - if (!versionNew) { - console.log(msg); - } else { - Info.version = versionNew; - data = JSON.stringify(Info, 0, 2) + '\n'; - Info.version = version; - - fs.writeFile('package.json', data, function(error) { - var msg = 'package: done'; - - console.log(error || msg); - }); - } - }); - - gulp.task('docs', function() { - var history = 'Version history\n---------------\n', - link = '//github.com/cloudcmd/archive/raw/master/cloudcmd', - template = '- *{{ date }}*, ' + - '**[v{{ version }}]' + - '(' + link + '-v{{ version }}.zip)**\n', - version = Info.version, - versionNew = getNewVersion(), - msg = 'ERROR: version is missing. gulp docs --v'; - - if (!versionNew) { - console.log(msg); - } else { - replaceVersion('README.md', version, versionNew); - replaceVersion('HELP.md', version, versionNew, function() { - var historyNew = history + Util.render(template, { - date : Util.getShortDate, - version : versionNew - }); - - replaceVersion('HELP.md', history, historyNew); - }); - } - }); - gulp.task('default', ['jshint', 'css', 'test']); gulp.task('release', ['changelog', 'docs', 'package']); @@ -173,35 +58,4 @@ console.log(params.message); } - function getNewVersion() { - var versionNew, - argv = process.argv, - length = argv.length - 1, - last = process.argv[length], - regExp = new RegExp('^--'), - isMatch = last.match(regExp); - - if (isMatch) - versionNew = last.substr(3); - - return versionNew; - } - - function replaceVersion(name, version, versionNew, callback) { - fs.readFile(name, 'utf8', function(error, data) { - if (error) { - console.log(error); - } else { - data = data.replace(version, versionNew); - - fs.writeFile(name, data, function(error) { - var msg = 'done: ' + name; - - console.log(error || msg); - Util.exec(callback); - }); - } - }); - } - })();