# Builds the frontend for production # Call 'build_frontend demo' to build a demo frontend. # If current pwd is scripts, go 1 up. if [ ${PWD##*/} == "scripts" ]; then cd .. fi scripts/build_js $1 # To build the frontend, you need node, bower and vulcanize # npm install -g bower vulcanize # Install dependencies cd homeassistant/components/frontend/www_static/polymer bower install cd .. cp polymer/bower_components/webcomponentsjs/webcomponents.min.js . # Let Polymer refer to the minified JS version before we compile sed -i.bak 's/polymer\.js/polymer\.min\.js/' polymer/bower_components/polymer/polymer.html vulcanize -o frontend.html --inline --strip polymer/home-assistant.html # Revert back the change to the Polymer component rm polymer/bower_components/polymer/polymer.html mv polymer/bower_components/polymer/polymer.html.bak polymer/bower_components/polymer/polymer.html # Generate the MD5 hash of the new frontend cd .. echo '""" DO NOT MODIFY. Auto-generated by build_frontend script """' > version.py if [ $(command -v md5) ]; then echo 'VERSION = "'`md5 -q www_static/frontend.html`'"' >> version.py elif [ $(command -v md5sum) ]; then echo 'VERSION = "'`md5sum www_static/frontend.html | cut -c-32`'"' >> version.py else echo 'Could not find an MD5 utility' fi