Add static site generator
parent
3820cb60a5
commit
64cb5a329f
|
@ -3,6 +3,6 @@ with python3.pkgs;
|
|||
buildPythonPackage rec {
|
||||
name = "mqtt-dash";
|
||||
src = ./.;
|
||||
propagatedBuildInputs = [ flask ];
|
||||
propagatedBuildInputs = [ flask setuptools ];
|
||||
doCheck = false;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
#!/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")
|
||||
|
|
@ -5,10 +5,10 @@
|
|||
<meta name="viewport" content="width=device-width,initial-scale=0.8"/>
|
||||
<!-- http://paletton.com/#uid=13w0u0kllllaFw0g0qFqFg0w0aF -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.0/css/bulma.min.css">
|
||||
<link rel="stylesheet" href="/static/style.css">
|
||||
<link rel="stylesheet" href="static/style.css">
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.2/mqttws31.min.js" type="text/javascript"></script>
|
||||
<script src="/static/main.js"></script>
|
||||
<script src="static/main.js"></script>
|
||||
|
||||
<script>
|
||||
window.onload = function() { init("{{mqtt_broker}}")};
|
||||
|
|
Loading…
Reference in New Issue