mirror of
https://github.com/luc-github/ESP3D-WEBUI.git
synced 2025-10-31 11:56:46 -07:00
335 lines
8.6 KiB
JavaScript
335 lines
8.6 KiB
JavaScript
var gulp = require('gulp'),
|
|
jshint = require('gulp-jshint'),
|
|
gulpif = require('gulp-if'),
|
|
concat = require('gulp-concat'),
|
|
uglify = require('gulp-uglify'),
|
|
cleanCSS = require('gulp-clean-css'),
|
|
removeCode = require('gulp-remove-code'),
|
|
merge = require('merge-stream'),
|
|
del = require('del'),
|
|
zip = require('gulp-zip'),
|
|
gzip = require('gulp-gzip'),
|
|
htmlmin = require('gulp-htmlmin'),
|
|
replace = require('gulp-replace'),
|
|
fs = require('fs'),
|
|
smoosher = require('gulp-smoosher');
|
|
size = require('gulp-filesize');
|
|
|
|
var en_lang = true;
|
|
var fr_lang = false;
|
|
var es_lang = false;
|
|
var de_lang = false;
|
|
var it_lang = false;
|
|
var ja_lang = false;
|
|
var pl_lang = false;
|
|
var ptbr_lang = false;
|
|
var ru_lang = false;
|
|
var uk_lang = false;
|
|
var zh_cn_lang = false;
|
|
var hu_lang = false;
|
|
var tr_lang = false;
|
|
var zh_tw_lang = false;
|
|
|
|
function clean() {
|
|
return del(['dist']);
|
|
|
|
}
|
|
|
|
function clean2() {
|
|
return del(['dist/js', 'dist/css']);
|
|
}
|
|
function lint() {
|
|
return gulp.src('www/js/**/app.js')
|
|
.pipe(jshint())
|
|
.pipe(jshint.reporter('default'));
|
|
}
|
|
|
|
function Copytest() {
|
|
return merge(
|
|
gulp.src(['www/index.html'])
|
|
.pipe(removeCode({production: false}))
|
|
.pipe(removeCode({cleanheader: true}))
|
|
.pipe(gulp.dest('dist')),
|
|
gulp.src(['www/images/**/*.*'])
|
|
.pipe(gulp.dest('dist/images'))
|
|
)
|
|
}
|
|
|
|
function Copy() {
|
|
return merge(
|
|
gulp.src(['www/index.html'])
|
|
.pipe(removeCode({production: true}))
|
|
.pipe(removeCode({cleanheader: true}))
|
|
.pipe(gulp.dest('dist')),
|
|
gulp.src(['www/images/**/*.*'])
|
|
.pipe(gulp.dest('dist/images'))
|
|
)
|
|
}
|
|
|
|
function concatApptest() {
|
|
return merge(
|
|
gulp.src([ 'www/js/**/*.js'])
|
|
.pipe(concat('app.js'))
|
|
.pipe(removeCode({production: false}))
|
|
.pipe(removeCode({cleanheader: true}))
|
|
.pipe(gulp.dest('./dist/js')),
|
|
|
|
gulp.src([ 'www/css/**/*.css'])
|
|
.pipe(concat('style.css'))
|
|
.pipe(gulp.dest('./dist/css/'))
|
|
)
|
|
}
|
|
|
|
function concatApp() {
|
|
return merge(
|
|
gulp.src([ 'www/js/**/*.js'])
|
|
.pipe(concat('app.js'))
|
|
.pipe(removeCode({production: true}))
|
|
.pipe(removeCode({cleanheader: true}))
|
|
.pipe(gulp.dest('./dist/js')),
|
|
|
|
gulp.src([ 'www/css/**/*.css'])
|
|
.pipe(concat('style.css'))
|
|
.pipe(gulp.dest('./dist/css/'))
|
|
)
|
|
}
|
|
|
|
function replaceSVG() {
|
|
return gulp.src('dist/index.html')
|
|
.pipe(replace(/<!-- replaceSVG -->(.*?)<!-- \/replaceSVG -->/g, function (match, p1) {
|
|
return fs.readFileSync('dist/images/jogdial.svg', 'utf8');
|
|
}))
|
|
.pipe(gulp.dest('dist'))
|
|
}
|
|
|
|
function clearlang() {
|
|
// fetch command line arguments
|
|
console.log("Enable Language:");
|
|
const arg = (argList => {
|
|
|
|
let arg = {}, a, opt, thisOpt, curOpt;
|
|
for (a = 0; a < argList.length; a++) {
|
|
|
|
thisOpt = argList[a].trim();
|
|
opt = thisOpt.replace(/^\-+/, '');
|
|
|
|
if (opt === thisOpt) {
|
|
|
|
// argument value
|
|
if (curOpt) arg[curOpt] = opt;
|
|
curOpt = null;
|
|
|
|
}
|
|
else {
|
|
|
|
// argument name
|
|
curOpt = opt;
|
|
arg[curOpt] = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return arg;
|
|
|
|
})(process.argv);
|
|
if ((arg.lang == 'grbl') ) {
|
|
en_lang = true;
|
|
fr_lang = true;
|
|
es_lang = true;
|
|
de_lang = true;
|
|
it_lang = true;
|
|
ja_lang = false;
|
|
hu_lang = false;
|
|
pl_lang = true;
|
|
ptbr_lang = true;
|
|
ru_lang = true;
|
|
tr_lang = false;
|
|
uk_lang = true;
|
|
zh_cn_lang = false;
|
|
}
|
|
if ((typeof arg.lang == 'undefined') || (arg.lang == 'all')) {
|
|
en_lang = true;
|
|
fr_lang = true;
|
|
es_lang = true;
|
|
de_lang = true;
|
|
it_lang = true;
|
|
ja_lang = true;
|
|
hu_lang = true;
|
|
pl_lang = true;
|
|
ptbr_lang = true;
|
|
ru_lang = true;
|
|
tr_lang = true;
|
|
uk_lang = true;
|
|
zh_cn_lang = true;
|
|
zh_tw_lang = true;
|
|
}
|
|
if (arg.lang == 'en'){
|
|
en_lang = true;
|
|
}
|
|
if(en_lang){
|
|
console.log("en");
|
|
}
|
|
if (arg.lang == 'fr'){
|
|
fr_lang = true;
|
|
}
|
|
if(fr_lang){
|
|
console.log("fr");
|
|
}
|
|
if (arg.lang == 'es'){
|
|
es_lang = true;
|
|
}
|
|
if(es_lang){
|
|
console.log("es");
|
|
}
|
|
if (arg.lang == 'de'){
|
|
de_lang = true;
|
|
}
|
|
if(de_lang){
|
|
console.log("de");
|
|
}
|
|
if (arg.lang == 'it'){
|
|
it_lang = true;
|
|
}
|
|
if (arg.lang == 'ja'){
|
|
ja_lang = true;
|
|
}
|
|
if(hu_lang){
|
|
console.log("hu");
|
|
}
|
|
if (arg.lang == 'hu'){
|
|
hu_lang = true;
|
|
}
|
|
if(it_lang){
|
|
console.log("it");
|
|
}
|
|
if(ja_lang){
|
|
console.log("ja");
|
|
}
|
|
if (arg.lang == 'pl'){
|
|
pl_lang = true;
|
|
}
|
|
if(pl_lang){
|
|
console.log("pl");
|
|
}
|
|
if (arg.lang == 'ptbr'){
|
|
ptbr_lang = true;
|
|
}
|
|
if(ptbr_lang){
|
|
console.log("ptbr");
|
|
}
|
|
if (arg.lang == 'ru'){
|
|
ru_lang = true;
|
|
}
|
|
if(ru_lang){
|
|
console.log("ru");
|
|
}
|
|
if (arg.lang == 'tr'){
|
|
tr_lang = true;
|
|
}
|
|
if(tr_lang){
|
|
console.log("tr");
|
|
}
|
|
if (arg.lang == 'uk'){
|
|
uk_lang = true;
|
|
}
|
|
if(uk_lang){
|
|
console.log("uk");
|
|
}
|
|
if (arg.lang == 'zh_CN'){
|
|
zh_cn_lang = true;
|
|
}
|
|
if(zh_cn_lang){
|
|
console.log("zh_CN");
|
|
}
|
|
if (arg.lang == 'zh_TW'){
|
|
zh_tw_lang = true;
|
|
}
|
|
if(zh_tw_lang){
|
|
console.log("zh_TW");
|
|
}
|
|
return gulp.src('dist/js/app.js')
|
|
.pipe(removeCode({de_lang_disabled: !de_lang}))
|
|
.pipe(removeCode({en_lang_disabled: !en_lang}))
|
|
.pipe(removeCode({es_lang_disabled: !es_lang}))
|
|
.pipe(removeCode({fr_lang_disabled: !fr_lang}))
|
|
.pipe(removeCode({it_lang_disabled: !it_lang}))
|
|
.pipe(removeCode({ja_lang_disabled: !ja_lang}))
|
|
.pipe(removeCode({hu_lang_disabled: !hu_lang}))
|
|
.pipe(removeCode({pl_lang_disabled: !pl_lang}))
|
|
.pipe(removeCode({ptbr_lang_disabled: !ptbr_lang}))
|
|
.pipe(removeCode({ru_lang_disabled: !ru_lang}))
|
|
.pipe(removeCode({tr_lang_disabled: !tr_lang}))
|
|
.pipe(removeCode({uk_lang_disabled: !uk_lang}))
|
|
.pipe(removeCode({zh_cn_lang_disabled: !zh_cn_lang}))
|
|
.pipe(removeCode({zh_tw_lang_disabled: !zh_tw_lang}))
|
|
.pipe(gulp.dest('./dist/js/'))
|
|
}
|
|
|
|
function minifyApp() {
|
|
return merge(
|
|
gulp.src(['dist/js/app.js'])
|
|
.pipe(uglify({mangle: true}))
|
|
.pipe(gulp.dest('./dist/js/')),
|
|
|
|
gulp.src('dist/css/style.css')
|
|
.pipe(cleanCSS({debug: true}, function(details) {
|
|
console.log(details.name + ': ' + details.stats.originalSize);
|
|
console.log(details.name + ': ' + details.stats.minifiedSize);
|
|
}))
|
|
.pipe(gulp.dest('./dist/css/')),
|
|
|
|
gulp.src('dist/index.html')
|
|
.pipe(htmlmin({collapseWhitespace: true, minifyCSS: true}))
|
|
.pipe(gulp.dest('dist'))
|
|
)
|
|
}
|
|
|
|
function includehtml() {
|
|
return merge(
|
|
gulp.src('dist/index.html')
|
|
.pipe(replace(/<file-include w3-include-html="'sub\/(.*?)'"><\/file-include>/g, function (match, p1) {
|
|
return fs.readFileSync('www/sub/' + p1, 'utf8');
|
|
}))
|
|
.pipe(gulp.dest('dist/'))
|
|
)
|
|
}
|
|
|
|
function smoosh() {
|
|
return gulp.src('dist/index.html')
|
|
.pipe(smoosher())
|
|
.pipe(gulp.dest('dist'))
|
|
}
|
|
|
|
function compress() {
|
|
return gulp.src('dist/index.html')
|
|
.pipe(gzip({ gzipOptions: { level: 9} }))
|
|
.pipe(gulp.dest('.'))
|
|
.pipe(size());
|
|
}
|
|
|
|
|
|
gulp.task(clean);
|
|
gulp.task(lint);
|
|
gulp.task(Copy);
|
|
gulp.task(Copytest);
|
|
gulp.task(replaceSVG);
|
|
gulp.task(concatApp);
|
|
gulp.task(concatApptest);
|
|
gulp.task(minifyApp);
|
|
gulp.task(smoosh);
|
|
gulp.task(clean2);
|
|
gulp.task(clearlang)
|
|
|
|
var defaultSeries = gulp.series(clean, lint, Copy, concatApp, minifyApp, includehtml, includehtml, smoosh);
|
|
//var packageSeries = gulp.series(clean, lint, Copy, concatApp, minifyApp, smoosh, compress);
|
|
var packageSeries = gulp.series(clean, lint, Copy, concatApp, includehtml, includehtml, replaceSVG, clearlang, minifyApp, smoosh, compress, clean2);
|
|
var package2Series = gulp.series(clean, lint, Copy, concatApp, includehtml, includehtml, replaceSVG, smoosh);
|
|
var package2testSeries = gulp.series(clean, lint, Copytest, concatApptest, includehtml, includehtml, replaceSVG, smoosh);
|
|
|
|
gulp.task('default', defaultSeries);
|
|
gulp.task('package', packageSeries);
|
|
gulp.task('package2', package2Series);
|
|
gulp.task('package2test', package2testSeries);
|
|
|