cms/gulpfile.js
changeset 352 d8a8c57f36c4
parent 346 4cd0f8c936ed
child 541 e756a8c72c3d
equal deleted inserted replaced
351:c69dcc3b0524 352:d8a8c57f36c4
     1 var gulp = require('gulp');
     1 const gulp = require('gulp');
       
     2 const del = require('del');
       
     3 const zip = require('gulp-zip');
       
     4 const merge = require('merge-stream');
       
     5 const seq = require('run-sequence');
       
     6 const exec = require('child_process').execSync;
       
     7 const minimist = require('minimist');
       
     8 const template = require('gulp-template');
       
     9 const rename = require('gulp-rename');
     2 
    10 
     3 var buildFolder = 'app-client/dist';
    11 const appBuildFolder = 'app-client/dist';
     4 var moduleFolder = 'corpus_module';
    12 const moduleFolder = 'corpus_module';
       
    13 const moduleBuildFolder = 'dist'
       
    14 const buildDestFolder = '../build/root/var/www/corpusdelaparole/drupal/sites/all/modules/' + moduleFolder;
     5 
    15 
       
    16 const options = minimist(process.argv.slice(2), {string: "version"});
       
    17 
       
    18 if(!options.version) {
       
    19     return process.exit(2);
       
    20 }
       
    21 
       
    22 var buildOption = "--prod";
       
    23 var environment = "production";
       
    24 var corpusBackUrl = "corpus-back";
       
    25 if(options.prod) {
       
    26     buildOption = "--prod";
       
    27     environment = "production";
       
    28     corpusBackUrl = "corpus-back";
       
    29 } else if(options.dev) {
       
    30     buildOption = "--dev";
       
    31     environment = "development";
       
    32     corpusBackUrl = "corpus-app";
       
    33 }
       
    34 
       
    35 
       
    36 gulp.task('build-ember', function(cb) {
       
    37     exec('npm install', {
       
    38         cwd: '../app-client',
       
    39         stdio:[0,1,2]
       
    40     });
       
    41     exec('node_modules/.bin/bower install', {
       
    42         cwd: '../app-client',
       
    43         stdio:[0,1,2]
       
    44     });
       
    45     exec('node_modules/.bin/ember build '+buildOption, {
       
    46         cwd: '../app-client',
       
    47         stdio:[0,1,2]
       
    48     });
       
    49 });
       
    50 
       
    51 gulp.task('clean', function() {
       
    52     return del([
       
    53         moduleBuildFolder+'/'+moduleFolder+'/**/*',
       
    54         moduleBuildFolder+'/**/*',
       
    55     ]);
       
    56 });
     6 gulp.task('copy-module', function () {
    57 gulp.task('copy-module', function () {
     7   gulp.src(buildFolder+'/assets/**/*')
    58     var moduleFiles = gulp.src([moduleFolder+'/*', '!'+moduleFolder+'/*.tmpl'])
     8     .pipe(gulp.dest(moduleFolder+'/app-client/assets'));
    59         .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder));
     9   gulp.src(buildFolder+'/fonts/**/*')
    60 
    10     .pipe(gulp.dest(moduleFolder+'/app-client/fonts'));
    61     var templateValues = {
    11   gulp.src(moduleFolder+'/**/*')
    62         corpus_back_url: corpusBackUrl,
    12     .pipe(gulp.dest('../../../drupal-7.41/modules/corpus'));
    63         version: options.version,
       
    64         environment: environment
       
    65     };
       
    66     var tmplModuleFile = gulp.src(moduleFolder+'/corpus.module.tmpl')
       
    67         .pipe(template(templateValues))
       
    68         .pipe(rename("corpus.module"))
       
    69         .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder));
       
    70 
       
    71     var assetsFiles = gulp.src(appBuildFolder+'/assets/**/*')
       
    72         .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder+'/app-client/assets'));
       
    73 
       
    74     var fontsFiles = gulp.src(appBuildFolder+'/fonts/**/*')
       
    75         .pipe(gulp.dest(moduleBuildFolder+'/'+moduleFolder+'/app-client/fonts'));
       
    76 
       
    77     return merge(moduleFiles, tmplModuleFile, assetsFiles, fontsFiles);
       
    78 
    13 });
    79 });
       
    80 gulp.task('zip-module', function() {
       
    81     return gulp.src(moduleBuildFolder+'/'+moduleFolder+'/**/*')
       
    82         .pipe(zip(moduleFolder+'.zip'))
       
    83         .pipe(gulp.dest(moduleBuildFolder));
       
    84 })
       
    85 
       
    86 gulp.task('default', function(cb) {
       
    87     seq('clean', 'copy-module', function (err) {
       
    88       //if any error happened in the previous tasks, exit with a code > 0
       
    89       if (err) {
       
    90         var exitCode = 2;
       
    91         console.log('[ERROR] gulp build task failed', err);
       
    92         console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode);
       
    93         return process.exit(exitCode);
       
    94       }
       
    95       else {
       
    96         return cb();
       
    97       }
       
    98     });
       
    99 });
       
   100 
       
   101 gulp.task('zip', function(cb) {
       
   102     seq('clean', 'copy-module', 'zip-module', function (err) {
       
   103       //if any error happened in the previous tasks, exit with a code > 0
       
   104       if (err) {
       
   105         var exitCode = 2;
       
   106         console.log('[ERROR] gulp build task failed', err);
       
   107         console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode);
       
   108         return process.exit(exitCode);
       
   109       }
       
   110       else {
       
   111         return cb();
       
   112       }
       
   113     });
       
   114 });
       
   115 
       
   116 gulp.task('do-copy-build', function(cb) {
       
   117     return gulp.src(moduleBuildFolder+'/'+moduleFolder+'/**/*')
       
   118         .pipe(gulp.dest(buildDestFolder));
       
   119 });
       
   120 
       
   121 gulp.task('copy-build', function(cb) {
       
   122     seq('clean', 'copy-module', 'do-copy-build', function (err) {
       
   123       //if any error happened in the previous tasks, exit with a code > 0
       
   124       if (err) {
       
   125         var exitCode = 2;
       
   126         console.log('[ERROR] gulp build task failed', err);
       
   127         console.log('[FAIL] gulp build task failed - exiting with code ' + exitCode);
       
   128         return process.exit(exitCode);
       
   129       }
       
   130       else {
       
   131         return cb();
       
   132       }
       
   133     });
       
   134 });