From c11fb91904904a0719cc402f540f0d96cfac1190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Sat, 27 Jan 2018 08:57:16 +0100 Subject: [PATCH] Translate and build files --- code/gulpfile.js | 112 +++++++++++++++++++++++++--------------------- code/package.json | 4 +- 2 files changed, 64 insertions(+), 52 deletions(-) diff --git a/code/gulpfile.js b/code/gulpfile.js index d71ef938..15995724 100644 --- a/code/gulpfile.js +++ b/code/gulpfile.js @@ -2,7 +2,7 @@ ESP8266 file system builder -Copyright (C) 2016-2018 by Xose Pérez +Copyright (C) 2016-2017 by Xose Pérez This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,9 +19,6 @@ along with this program. If not, see . */ -/*eslint quotes: ["error", "single"]*/ -/*eslint-env es6*/ - // ----------------------------------------------------------------------------- // File system builder // ----------------------------------------------------------------------------- @@ -35,84 +32,94 @@ const gzip = require('gulp-gzip'); const inline = require('gulp-inline'); const inlineImages = require('gulp-css-base64'); const favicon = require('gulp-base64-favicon'); +<<<<<<< Updated upstream +======= const htmllint = require('gulp-htmllint'); const gutil = require('gulp-util'); const csslint = require('gulp-csslint'); +const i18n = require('gulp-international'); + +// ----------------------------------------------------------------------------- +>>>>>>> Stashed changes const dataFolder = 'espurna/data/'; const staticFolder = 'espurna/static/'; -String.prototype.replaceAll = function(search, replacement) { - var target = this; - return target.split(search).join(replacement); -}; +// ----------------------------------------------------------------------------- + +const map = require('map-stream'); -var toHeader = function(filename) { +var buildHeaderFile = function() { - var source = dataFolder + filename; - var destination = staticFolder + filename + '.h'; - var safename = filename.replaceAll('.', '_'); + String.prototype.replaceAll = function(search, replacement) { + var target = this; + return target.split(search).join(replacement); + }; - var wstream = fs.createWriteStream(destination); - wstream.on('error', function (err) { - console.log(err); - }); + return map(function(file, cb) { - var data = fs.readFileSync(source); + var parts = file.path.split("/"); + var filename = parts[parts.length - 1]; + var destination = staticFolder + filename + ".h"; + var safename = filename.replaceAll('.', '_'); + var wstream = fs.createWriteStream(destination); + wstream.on('error', function (err) { + console.log(err); + }); + +<<<<<<< Updated upstream wstream.write('#define ' + safename + '_len ' + data.length + '\n'); - wstream.write('const uint8_t ' + safename + '[] PROGMEM = {'); + wstream.write('const uint8_t ' + safename + '[] PROGMEM = {') - for (var i=0; i 0) { - issues.forEach(function (issue) { - gutil.log(gutil.colors.cyan('[gulp-htmllint] ') + gutil.colors.white(filepath + ' [' + issue.line + ',' + issue.column + ']: ') + gutil.colors.red('(' + issue.code + ') ' + issue.msg)); - }); - process.exitCode = 1; - } -}; + wstream.write('\n};'); + wstream.end(); + + cb(0, file); + + }); +>>>>>>> Stashed changes + +} gulp.task('build_certs', function() { toHeader('server.cer'); toHeader('server.key'); }); -gulp.task('csslint', function() { - gulp.src('html/*.css') - .pipe(csslint({ids: false})) - .pipe(csslint.formatter()); -}); - gulp.task('buildfs_embeded', ['buildfs_inline'], function() { - toHeader('index.html.gz'); + gulp.src(dataFolder + 'index.*') + .pipe(buildHeaderFile()); }); gulp.task('buildfs_inline', function() { return gulp.src('html/*.html') - .pipe(htmllint({ - 'failOnError': true, - 'rules': { - 'id-class-style': false, - 'label-req-for': false, - } - }, htmllintReporter)) .pipe(favicon()) .pipe(inline({ base: 'html/', - js: [uglify], + js: uglify, css: [cleancss, inlineImages], disabledTypes: ['svg', 'img'] })) @@ -122,9 +129,14 @@ gulp.task('buildfs_inline', function() { minifyCSS: true, minifyJS: true })) + .pipe(i18n({ + warn: true, + whitelist: ['ca_ES'], + filename: '${name}.${lang}.${ext}', + locales: './html/locales/' + })) .pipe(gzip()) .pipe(gulp.dest(dataFolder)); -}); - +}) gulp.task('default', ['buildfs_embeded']); diff --git a/code/package.json b/code/package.json index 0d2a39c5..eeb241d1 100644 --- a/code/package.json +++ b/code/package.json @@ -11,11 +11,11 @@ "gulp-base64-favicon": "^1.0.2", "gulp-clean-css": "^3.4.2", "gulp-css-base64": "^1.3.4", - "gulp-csslint": "^1.0.0", "gulp-gzip": "^1.4.0", - "gulp-htmllint": "0.0.14", "gulp-htmlmin": "^2.0.0", + "gulp-i18n-localize": "^1.2.7", "gulp-inline": "^0.1.1", + "gulp-international": "^1.1.0", "gulp-uglify": "^1.5.3", "gulp-util": "^3.0.8" },