39 lines
862 B
Python
Executable File
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")
|
|
|