diff --git a/.gitignore b/.gitignore index 975bff0f78..8f5f200290 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ build-temp/* build-es5/* build-temp-es5/* build-translations/* +build-hassio/* node_modules/* bower_components/* npm-debug.log diff --git a/gulp/tasks/hassio-panel.js b/gulp/tasks/hassio-panel.js index 2a5517a105..803a4b67be 100755 --- a/gulp/tasks/hassio-panel.js +++ b/gulp/tasks/hassio-panel.js @@ -1,5 +1,9 @@ +const del = require('del'); const gulp = require('gulp'); const rename = require('gulp-rename'); +const gzip = require('gulp-gzip'); +const path = require('path'); +const runSequence = require('run-sequence'); const { stripImportsStrategy, @@ -7,39 +11,44 @@ const { const minifyStream = require('../common/transform').minifyStream; const { bundledStreamFromHTML, - findDependencies } = require('../common/html'); -const { polymer_dir } = require('../config'); +const OUTPUT_DIR = 'build-hassio/'; const DEPS_TO_STRIP = [ 'bower_components/font-roboto/roboto.html', 'bower_components/paper-styles/color.html', - 'bower_components/iron-meta/iron-meta.html', -]; -const DEPS_TO_STRIP_RECURSIVELY = [ - 'bower_components/polymer/polymer.html', ]; -async function buildHassioPanel(es6) { - const toStrip = [...DEPS_TO_STRIP]; - - for (const dep of DEPS_TO_STRIP_RECURSIVELY) { - toStrip.push(dep); - const deps = await findDependencies(polymer_dir, dep); - for (const importUrl of deps) { - toStrip.push(importUrl); - } - } - - const stream = await bundledStreamFromHTML('panels/hassio/hassio-main.html', { - strategy: stripImportsStrategy(toStrip) +async function buildHassioPanel() { + const stream = await bundledStreamFromHTML('hassio/hassio-app.html', { + strategy: stripImportsStrategy(DEPS_TO_STRIP) }); - return minifyStream(stream, es6) - .pipe(rename('hassio-main.html')) - .pipe(gulp.dest(es6 ? 'build-temp' : 'build-temp-es5')); + return minifyStream(stream, /* es6= */ false) + .pipe(rename('hassio-app.html')) + .pipe(gulp.dest(OUTPUT_DIR)); } -gulp.task('hassio-panel-es5', buildHassioPanel.bind(null, /* es6= */ false)); -gulp.task('hassio-panel', buildHassioPanel.bind(null, /* es6= */ true)); +function copyHassioIndex() { + return gulp.src('hassio/index.html') + .pipe(gulp.dest(OUTPUT_DIR)); +} + +function gzipOutput() { + return gulp.src(path.resolve(OUTPUT_DIR, '*.html')) + .pipe(gzip({ skipGrowingFiles: true })) + .pipe(gulp.dest(OUTPUT_DIR)); +} + +gulp.task('hassio-clean', () => del([OUTPUT_DIR])); +gulp.task('hassio-panel-es5', buildHassioPanel); +gulp.task('hassio-index-es5', copyHassioIndex); +gulp.task('hassio-gzip-es5', gzipOutput); + +gulp.task('hassio-es5', () => runSequence.use(gulp)( + 'hassio-clean', + 'hassio-panel-es5', + 'hassio-index-es5', + 'hassio-gzip-es5', +)); diff --git a/panels/hassio/addon-store/hassio-addon-repository.html b/hassio/addon-store/hassio-addon-repository.html similarity index 83% rename from panels/hassio/addon-store/hassio-addon-repository.html rename to hassio/addon-store/hassio-addon-repository.html index 4b28d83e6b..4006a2a953 100644 --- a/panels/hassio/addon-store/hassio-addon-repository.html +++ b/hassio/addon-store/hassio-addon-repository.html @@ -1,9 +1,9 @@ - - - - + + + + - +