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 }); |