diff -r 4b66390442fd -r 4cd0f8c936ed cms/gulpfile.js --- a/cms/gulpfile.js Mon Oct 17 19:51:14 2016 +0530 +++ b/cms/gulpfile.js Mon Oct 17 18:07:53 2016 +0200 @@ -1,13 +1,134 @@ -var gulp = require('gulp'); +const gulp = require('gulp'); +const del = require('del'); +const zip = require('gulp-zip'); +const merge = require('merge-stream'); +const seq = require('run-sequence'); +const exec = require('child_process').execSync; +const minimist = require('minimist'); +const template = require('gulp-template'); +const rename = require('gulp-rename'); + +const appBuildFolder = 'app-client/dist'; +const moduleFolder = 'corpus_module'; +const moduleBuildFolder = 'dist' +const buildDestFolder = '../build/root/var/www/corpusdelaparole/drupal/sites/all/modules/' + moduleFolder; + +const options = minimist(process.argv.slice(2), {string: "version"}); + +if(!options.version) { + return process.exit(2); +} -var buildFolder = 'app-client/dist'; -var moduleFolder = 'corpus_module'; +var buildOption = "--prod"; +var environment = "production"; +var corpusBackUrl = "corpus-back"; +if(options.prod) { + buildOption = "--prod"; + environment = "production"; + corpusBackUrl = "corpus-back"; +} else if(options.dev) { + buildOption = "--dev"; + environment = "development"; + corpusBackUrl = "corpus-app"; +} + +gulp.task('build-ember', function(cb) { + exec('npm install', { + cwd: '../app-client', + stdio:[0,1,2] + }); + exec('node_modules/.bin/bower install', { + cwd: '../app-client', + stdio:[0,1,2] + }); + exec('node_modules/.bin/ember build '+buildOption, { + cwd: '../app-client', + stdio:[0,1,2] + }); +}); + +gulp.task('clean', function() { + return del([ + moduleBuildFolder+'/'+moduleFolder+'/**/*', + moduleBuildFolder+'/**/*', + ]); +}); gulp.task('copy-module', function () { - gulp.src(buildFolder+'/assets/**/*') - .pipe(gulp.dest(moduleFolder+'/app-client/assets')); - gulp.src(buildFolder+'/fonts/**/*') - .pipe(gulp.dest(moduleFolder+'/app-client/fonts')); - gulp.src(moduleFolder+'/**/*') - .pipe(gulp.dest('../../../drupal-7.41/modules/corpus')); + var moduleFiles = gulp.src([moduleFolder+'/*', '!'+moduleFolder+'/*.tmpl']) + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder)); + + var templateValues = { + corpus_back_url: corpusBackUrl, + version: options.version, + environment: environment + }; + var tmplModuleFile = gulp.src(moduleFolder+'/corpus.module.tmpl') + .pipe(template(templateValues)) + .pipe(rename("corpus.module")) + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder)); + + var assetsFiles = gulp.src(appBuildFolder+'/assets/**/*') + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder+'/app-client/assets')); + + var fontsFiles = gulp.src(appBuildFolder+'/fonts/**/*') + .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder+'/app-client/fonts')); + + return merge(moduleFiles, tmplModuleFile, assetsFiles, fontsFiles); + }); +gulp.task('zip-module', function() { + return gulp.src(moduleBuildFolder+'/'+moduleFolder+'/**/*') + .pipe(zip(moduleFolder+'.zip')) + .pipe(gulp.dest(moduleBuildFolder)); +}) + +gulp.task('default', function(cb) { + seq('clean', 'copy-module', function (err) { + //if any error happened in the previous tasks, exit with a code > 0 + if (err) { + var exitCode = 2; + console.log('[ERROR] gulp build task failed', err); + console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode); + return process.exit(exitCode); + } + else { + return cb(); + } + }); +}); + +gulp.task('zip', function(cb) { + seq('clean', 'copy-module', 'zip-module', function (err) { + //if any error happened in the previous tasks, exit with a code > 0 + if (err) { + var exitCode = 2; + console.log('[ERROR] gulp build task failed', err); + console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode); + return process.exit(exitCode); + } + else { + return cb(); + } + }); +}); + +gulp.task('do-copy-build', function(cb) { + return gulp.src(moduleBuildFolder+'/'+moduleFolder+'/**/*') + .pipe(gulp.dest(buildDestFolder)); +}); + +gulp.task('copy-build', function(cb) { + seq('clean', 'copy-module', 'do-copy-build', function (err) { + //if any error happened in the previous tasks, exit with a code > 0 + if (err) { + var exitCode = 2; + console.log('[ERROR] gulp build task failed', err); + console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode); + return process.exit(exitCode); + } + else { + return cb(); + } + }); +});