* Move flatten to separate gulp task * Split translation fragments into separate files * Load translation fragments when switching panels * Fix gulpfile lint * Move app-location to home-assistant.html * Compute panel navigation in home-assistant.html * Only pass down panelUrl from home-assistant.html * Store panelUrl on hass * Store computed panel on hass object * Revert "Store computed panel on hass object" This reverts commit 0f150b1faa2b91588a432ab346821b633b349d1a. IMO this didn't really make the code cleaner. Just wanted to see how it would look. Keeping it here as a reverted commit in case we do want to use it.
84 lines
2.2 KiB
Bash
Executable File
84 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Builds the frontend for production
|
|
|
|
# Stop on errors
|
|
set -e
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
OUTPUT_DIR=hass_frontend
|
|
OUTPUT_DIR_ES5=hass_frontend_es5
|
|
|
|
rm -rf $OUTPUT_DIR $OUTPUT_DIR_ES5
|
|
cp -r public $OUTPUT_DIR
|
|
mkdir $OUTPUT_DIR_ES5
|
|
cp -r public/__init__.py $OUTPUT_DIR_ES5/
|
|
|
|
# Build frontend
|
|
BUILD_DEV=0 ./node_modules/.bin/gulp
|
|
|
|
# Entry points
|
|
cp build/*.js build/*.html $OUTPUT_DIR
|
|
cp build-es5/*.js build-es5/*.html $OUTPUT_DIR_ES5
|
|
|
|
# Panels
|
|
mkdir $OUTPUT_DIR/panels
|
|
cp build/panels/*.html $OUTPUT_DIR/panels
|
|
mkdir $OUTPUT_DIR_ES5/panels
|
|
cp build-es5/panels/*.html $OUTPUT_DIR_ES5/panels
|
|
|
|
# Translations
|
|
cp -r build-translations/output $OUTPUT_DIR/translations
|
|
|
|
# Local Roboto
|
|
cp -r bower_components/font-roboto-local/fonts $OUTPUT_DIR
|
|
|
|
# Polyfill web components
|
|
cp bower_components/webcomponentsjs/webcomponents-lite.js $OUTPUT_DIR
|
|
cp bower_components/webcomponentsjs/custom-elements-es5-adapter.js $OUTPUT_DIR_ES5
|
|
|
|
# Icons
|
|
script/update_mdi.py
|
|
|
|
# Leaflet
|
|
mkdir $OUTPUT_DIR/images/leaflet
|
|
cp bower_components/leaflet/dist/leaflet.css $OUTPUT_DIR/images/leaflet
|
|
cp -r bower_components/leaflet/dist/images $OUTPUT_DIR/images/leaflet/
|
|
|
|
# Generate service worker
|
|
BUILD_DEV=0 ./node_modules/.bin/gulp gen-service-worker-es5
|
|
cp build-es5/service_worker.js $OUTPUT_DIR_ES5
|
|
BUILD_DEV=0 ./node_modules/.bin/gulp gen-service-worker
|
|
cp build/service_worker.js $OUTPUT_DIR
|
|
|
|
|
|
# GZIP frontend
|
|
cd $OUTPUT_DIR
|
|
gzip -f -n -k -9 \
|
|
*.html \
|
|
*.js \
|
|
./panels/*.html \
|
|
./translations/*.json \
|
|
./translations/*/*.json \
|
|
./fonts/roboto/*.ttf \
|
|
./fonts/robotomono/*.ttf
|
|
cd ..
|
|
cd $OUTPUT_DIR_ES5
|
|
gzip -f -n -k -9 \
|
|
*.html \
|
|
*.js \
|
|
./panels/*.html
|
|
cd ..
|
|
|
|
# Generate the __init__ file
|
|
echo "VERSION = '`git rev-parse HEAD`'" >> $OUTPUT_DIR/__init__.py
|
|
echo "CREATED_AT = `date +%s`" >> $OUTPUT_DIR/__init__.py
|
|
echo "VERSION = '`git rev-parse HEAD`'" >> $OUTPUT_DIR_ES5/__init__.py
|
|
echo "CREATED_AT = `date +%s`" >> $OUTPUT_DIR_ES5/__init__.py
|
|
|
|
# Generate the MD5 hash of the new frontend
|
|
script/fingerprint_frontend.py --base_dir $OUTPUT_DIR
|
|
script/fingerprint_frontend.py --base_dir $OUTPUT_DIR_ES5
|
|
./node_modules/.bin/gulp gen-index-html
|
|
./node_modules/.bin/gulp gen-index-html-es5
|