mqtt-dash/make-static-site

39 lines
862 B
Python
Executable File

#!/usr/bin/env python
import argparse
import os
import sys
import pkg_resources
import shutil
import mqtt_dash.app
from mqtt_dash.app import app
args = argparse.ArgumentParser()
args.add_argument('config', default='config.py', help='Configuration file')
options = args.parse_args()
app.secret_key = os.urandom(12)
app.config.from_pyfile(os.path.abspath(options.config))
missing_config_fields = False
for opt in ('URL', 'MQTT_BROKER', 'PAGE_TITLE', 'WIDGETS'):
if opt not in app.config:
print(f'Error: field {opt} missing in configuration')
missing_config_fields = True
if missing_config_fields:
sys.exit(1)
client = app.test_client()
r = client.get('/')
with open("index.html", "wb") as f:
f.write(r.data)
static_assets = pkg_resources.resource_filename('mqtt_dash', 'static')
shutil.copytree(static_assets, "static")