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 = '