diff --git a/gulp/tasks/gen-icons.js b/gulp/tasks/gen-icons.js index dd4372500d..bb99d4d9c8 100644 --- a/gulp/tasks/gen-icons.js +++ b/gulp/tasks/gen-icons.js @@ -6,7 +6,8 @@ const config = require('../config'); const ICON_PACKAGE_PATH = path.resolve(__dirname, '../../node_modules/@mdi/svg/'); const META_PATH = path.resolve(ICON_PACKAGE_PATH, 'meta.json'); const ICON_PATH = path.resolve(ICON_PACKAGE_PATH, 'svg'); -const OUTPUT_PATH = path.resolve(__dirname, '../../build/mdi.html'); +const OUTPUT_DIR = path.resolve(__dirname, '../../build'); +const OUTPUT_PATH = path.resolve(OUTPUT_DIR, 'mdi.html'); function iconPath(name) { return path.resolve(ICON_PATH, `${name}.svg`); @@ -34,7 +35,8 @@ ${iconDefs} async function genIcons(es6) { const meta = JSON.parse(fs.readFileSync(path.resolve(ICON_PACKAGE_PATH, META_PATH), 'UTF-8')); const iconDefs = meta.map(iconInfo => transformXMLtoPolymer(iconInfo.name, loadIcon(iconInfo.name))).join(''); + fs.existsSync(OUTPUT_DIR) || fs.mkdirSync(OUTPUT_DIR); fs.writeFileSync(OUTPUT_PATH, generateIconset('mdi', iconDefs)); } -gulp.task('gen-icons', () => genIcons(/* es6= */ true)); +gulp.task('gen-icons', () => genIcons()); diff --git a/public/mdi.html b/public/mdi.html deleted file mode 100644 index 5ab91371c4..0000000000 --- a/public/mdi.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/script/build_frontend b/script/build_frontend index 83694363f8..bd316d41c0 100755 --- a/script/build_frontend +++ b/script/build_frontend @@ -6,10 +6,12 @@ set -e cd "$(dirname "$0")/.." +BUILD_DIR=build +BUILD_TRANSLATIONS_DIR=build-translations OUTPUT_DIR=hass_frontend OUTPUT_DIR_ES5=hass_frontend_es5 -rm -rf $OUTPUT_DIR $OUTPUT_DIR_ES5 build-translations +rm -rf $OUTPUT_DIR $OUTPUT_DIR_ES5 $BUILD_DIR $BUILD_TRANSLATIONS_DIR cp -r public $OUTPUT_DIR mkdir $OUTPUT_DIR_ES5 cp -r public/__init__.py $OUTPUT_DIR_ES5/ @@ -18,6 +20,9 @@ cp -r public/__init__.py $OUTPUT_DIR_ES5/ ./node_modules/.bin/gulp build-translations gen-icons NODE_ENV=production ./node_modules/.bin/webpack +# Temp for Hass.io +script/update_mdi.py + ./node_modules/.bin/gulp compress # Generate the __init__ file diff --git a/script/develop b/script/develop index 6b4b96a13f..dae5957e95 100755 --- a/script/develop +++ b/script/develop @@ -4,10 +4,11 @@ # Stop on errors set -e +BUILD_DIR=build OUTPUT_DIR=hass_frontend OUTPUT_DIR_ES5=hass_frontend_es5 -rm -rf $OUTPUT_DIR $OUTPUT_DIR_ES5 +rm -rf $OUTPUT_DIR $OUTPUT_DIR_ES5 $BUILD_DIR cp -r public $OUTPUT_DIR mkdir $OUTPUT_DIR_ES5 # Needed in case frontend repo installed with pip3 install -e diff --git a/script/update_mdi.py b/script/update_mdi.py new file mode 100755 index 0000000000..ae9225773a --- /dev/null +++ b/script/update_mdi.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +"""Download the latest Polymer v1 iconset for materialdesignicons.com.""" +import os +import re +import sys +import urllib.request + +GETTING_STARTED_URL = ('https://raw.githubusercontent.com/Templarian/' + 'MaterialDesign/master/site/getting-started.savvy') +DOWNLOAD_LINK = re.compile(r'(/api/download/polymer/v1/([A-Z0-9-]{36}))') +START_ICONSET = '