Regenerate website on update
This commit is contained in:
parent
5de03bf8d1
commit
39692a0333
|
@ -4,6 +4,8 @@ from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
import json
|
import json
|
||||||
import sqlite3
|
import sqlite3
|
||||||
import os
|
import os
|
||||||
|
import subprocess
|
||||||
|
|
||||||
DB_PATH = os.path.join(os.path.dirname(__file__), 'links.db')
|
DB_PATH = os.path.join(os.path.dirname(__file__), 'links.db')
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
@ -72,11 +74,16 @@ def update_links():
|
||||||
cur.executemany('INSERT INTO links VALUES (?,?,?,?,?)', links)
|
cur.executemany('INSERT INTO links VALUES (?,?,?,?,?)', links)
|
||||||
con.commit()
|
con.commit()
|
||||||
con.close()
|
con.close()
|
||||||
data = regen_JSON()
|
|
||||||
# TODO: Trigger a rebuild of the frontend
|
frontend_path = os.environ.get('FRONTEND_PATH', None)
|
||||||
outfile = open('data.json', 'w')
|
if frontend_path is None:
|
||||||
print(data, file=outfile)
|
raise Exception('FRONTEND_PATH is not defined')
|
||||||
outfile.close()
|
|
||||||
|
update_command = f"cd '{frontend_path}' && ./update.sh"
|
||||||
|
status = subprocess.call(update_command, shell=True)
|
||||||
|
|
||||||
|
if status != 0:
|
||||||
|
raise Exception(f"`{update_command}` exited with an error ({status})")
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
cur.execute("rollback")
|
cur.execute("rollback")
|
||||||
|
|
2
dev.sh
2
dev.sh
|
@ -18,7 +18,7 @@ function dev_backend() {
|
||||||
cd ./backend
|
cd ./backend
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
|
|
||||||
python main.py
|
FRONTEND_UPDATE_SCRIPT=$(realpath ./frontend/update.sh) python main.py
|
||||||
}
|
}
|
||||||
|
|
||||||
run_frontend_backend "dev_frontend" "dev_backend"
|
run_frontend_backend "dev_frontend" "dev_backend"
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { GetStaticProps } from "next";
|
||||||
import { Link, Links } from "components/Links";
|
import { Link, Links } from "components/Links";
|
||||||
|
|
||||||
export const getStaticProps: GetStaticProps<Props> = async () => {
|
export const getStaticProps: GetStaticProps<Props> = async () => {
|
||||||
const res = await fetch(`${process.env.DEV_URL}/links`);
|
const res = await fetch(`http://${process.env.SERVER_URL}/links`);
|
||||||
const links = await res.json();
|
const links = await res.json();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
npm run build
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Starting the python server..."
|
||||||
|
|
||||||
|
pushd backend
|
||||||
|
source venv/bin/activate
|
||||||
|
|
||||||
|
FRONTEND_PATH=$(realpath ../frontend) python main.py &
|
||||||
|
pid_backend=$!
|
||||||
|
|
||||||
|
trap_ctrlc() {
|
||||||
|
kill $pid_backend
|
||||||
|
}
|
||||||
|
|
||||||
|
trap trap_ctrlc INT
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
echo "Building frontend..."
|
||||||
|
|
||||||
|
pushd frontend
|
||||||
|
npm run build
|
||||||
|
popd
|
||||||
|
|
||||||
|
echo "Done!"
|
||||||
|
|
||||||
|
wait
|
Loading…
Reference in New Issue