39 lines
862 B
Plaintext
39 lines
862 B
Plaintext
|
#!/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")
|
||
|
|