| 
									
										
										
										
											2017-06-02 22:31:51 +02:00
										 |  |  | var ts = require('gulp-typescript'); | 
					
						
							|  |  |  | var gulp = require('gulp'); | 
					
						
							| 
									
										
										
										
											2017-06-02 23:21:05 +02:00
										 |  |  | var zip = require('gulp-zip'); | 
					
						
							| 
									
										
										
										
											2017-12-24 18:42:25 -05:00
										 |  |  | var fs = require('fs'); | 
					
						
							| 
									
										
										
										
											2017-06-02 22:31:51 +02:00
										 |  |  | var runSequence = require('run-sequence'); | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  | var jsonModify = require('gulp-json-modify'); | 
					
						
							|  |  |  | var exec = require('child_process').exec; | 
					
						
							| 
									
										
										
										
											2017-06-02 22:31:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-19 13:27:02 -04:00
										 |  |  | var tsBackendProject = ts.createProject('tsconfig.json'); | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  | gulp.task('build-backend', function () { | 
					
						
							|  |  |  |   return gulp.src([ | 
					
						
							|  |  |  |     "common/**/*.ts", | 
					
						
							|  |  |  |     "backend/**/*.ts"], {base: "."}) | 
					
						
							| 
									
										
										
										
											2017-10-19 12:08:07 -04:00
										 |  |  |     .pipe(tsBackendProject()) | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  |     .js | 
					
						
							|  |  |  |     .pipe(gulp.dest("./release")) | 
					
						
							| 
									
										
										
										
											2017-06-02 22:31:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2017-12-24 18:42:25 -05:00
										 |  |  | var createFornendTask = function (tpye, script) { | 
					
						
							|  |  |  |   gulp.task(tpye, function (cb) { | 
					
						
							|  |  |  |     exec(script, function (err, stdout, stderr) { | 
					
						
							|  |  |  |       console.log(stdout); | 
					
						
							|  |  |  |       console.log(stderr); | 
					
						
							|  |  |  |       cb(err); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2017-12-24 18:42:25 -05:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | gulp.task('build-frontend', function (done) { | 
					
						
							|  |  |  |   var dirCont = fs.readdirSync("./frontend/locale"); | 
					
						
							|  |  |  |   var files = dirCont.filter(function (elm) { | 
					
						
							|  |  |  |     return elm.match(/.*\.[a-zA-Z]+\.(xlf)/ig); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  |   var languages = files.map(function (f) { | 
					
						
							|  |  |  |     return f.split(".")[1] | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  |   var tasks = []; | 
					
						
							|  |  |  |   createFornendTask('build-frontend default', "ng build --aot -prod --output-path=./release/dist --no-progress"); | 
					
						
							|  |  |  |   tasks.push('build-frontend default'); | 
					
						
							|  |  |  |   for (var i = 0; i < files.length; i++) { | 
					
						
							|  |  |  |     createFornendTask('build-frontend ' + languages[i], "ng build --aot -prod --output-path=./release/dist/" + languages[i] + " --no-progress --locale " + languages[i] + " --i18n-format xlf --i18n-file frontend/locale/" + files[i] + " --missing-translation warning"); | 
					
						
							|  |  |  |     tasks.push('build-frontend ' + languages[i]); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   tasks.push(function () { | 
					
						
							|  |  |  |     done(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   runSequence.apply(this, tasks); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | gulp.task('copy-static', function () { | 
					
						
							|  |  |  |   return gulp.src([ | 
					
						
							|  |  |  |     "README.md", | 
					
						
							|  |  |  |     "LICENSE"], {base: "."}) | 
					
						
							|  |  |  |     .pipe(gulp.dest('./release')); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | gulp.task('copy-package', function () { | 
					
						
							|  |  |  |   return gulp.src([ | 
					
						
							|  |  |  |     "package.json"], {base: "."}) | 
					
						
							|  |  |  |     .pipe(jsonModify({ | 
					
						
							|  |  |  |       key: 'devDependencies', | 
					
						
							|  |  |  |       value: {} | 
					
						
							|  |  |  |     })) | 
					
						
							|  |  |  |     .pipe(jsonModify({ | 
					
						
							|  |  |  |       key: 'scripts', | 
					
						
							|  |  |  |       value: {"start": "node ./backend/index.js"} | 
					
						
							|  |  |  |     })) | 
					
						
							|  |  |  |     .pipe(gulp.dest('./release')); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-02 23:21:05 +02:00
										 |  |  | gulp.task('zip-release', function () { | 
					
						
							| 
									
										
										
										
											2017-07-11 22:23:07 +02:00
										 |  |  |   return gulp.src(['release/**/*'], {base: "./release"}) | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  |     .pipe(zip('pigallery2.zip')) | 
					
						
							|  |  |  |     .pipe(gulp.dest('.')); | 
					
						
							| 
									
										
										
										
											2017-06-02 23:21:05 +02:00
										 |  |  | }); | 
					
						
							| 
									
										
										
										
											2017-06-02 22:31:51 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | gulp.task('build-release', function (done) { | 
					
						
							| 
									
										
										
										
											2017-07-11 22:10:36 +02:00
										 |  |  |   runSequence('build-frontend', 'build-backend', 'copy-static', 'copy-package', 'zip-release', function () { | 
					
						
							|  |  |  |     done(); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2017-12-24 18:42:25 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-07 09:11:05 -05:00
										 |  |  | var simpleBuild = function (isProd) { | 
					
						
							|  |  |  |   return function (done) { | 
					
						
							|  |  |  |     var dirCont = fs.readdirSync("./frontend/locale"); | 
					
						
							|  |  |  |     var files = dirCont.filter(function (elm) { | 
					
						
							|  |  |  |       return elm.match(/.*\.[a-zA-Z]+\.(xlf)/ig); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     var languages = files.map(function (f) { | 
					
						
							|  |  |  |       return f.split(".")[1] | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     var tasks = []; | 
					
						
							|  |  |  |     var cmd = "ng build  "; | 
					
						
							|  |  |  |     if (isProd) { | 
					
						
							|  |  |  |       cmd += " -prod " | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     createFornendTask('build-frontend-dev default', cmd + "--output-path=./dist --no-progress"); | 
					
						
							|  |  |  |     tasks.push('build-frontend-dev default'); | 
					
						
							|  |  |  |     for (var i = 0; i < files.length; i++) { | 
					
						
							|  |  |  |       createFornendTask('build-frontend-dev ' + languages[i], cmd + "--output-path=./dist/" + languages[i] + " --no-progress --locale " + languages[i] + " --i18n-format xlf --i18n-file frontend/locale/" + files[i] + " --missing-translation warning"); | 
					
						
							|  |  |  |       tasks.push('build-frontend-dev ' + languages[i]); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     tasks.push(function () { | 
					
						
							|  |  |  |       done(); | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2017-12-24 18:42:25 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-07 09:11:05 -05:00
										 |  |  |     runSequence.apply(this, tasks); | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2017-12-24 18:42:25 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-07 09:11:05 -05:00
										 |  |  | gulp.task('build-dev', simpleBuild(false)); | 
					
						
							|  |  |  | gulp.task('build-prod', simpleBuild(true)); |