mirror of
https://github.com/hyperknot/openfreemap.git
synced 2026-05-21 22:12:15 +00:00
config refactor
This commit is contained in:
@@ -3,22 +3,14 @@ import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from http_host_lib import (
|
||||
CERTS_DIR,
|
||||
DEFAULT_RUNS_DIR,
|
||||
HOST_CONFIG,
|
||||
HTTP_HOST_BIN_DIR,
|
||||
MNT_DIR,
|
||||
NGINX_DIR,
|
||||
OFM_CONFIG_DIR,
|
||||
)
|
||||
from http_host_lib.config import config
|
||||
|
||||
|
||||
def write_nginx_config():
|
||||
curl_text_mix = ''
|
||||
|
||||
domain_le = HOST_CONFIG['domain_le']
|
||||
domain_ledns = HOST_CONFIG['domain_ledns']
|
||||
domain_le = config.host_config['domain_le']
|
||||
domain_ledns = config.host_config['domain_ledns']
|
||||
|
||||
# remove old configs and certs
|
||||
for file in Path('/data/nginx/sites').glob('ofm_*.conf'):
|
||||
@@ -29,30 +21,30 @@ def write_nginx_config():
|
||||
|
||||
# processing Round Robin DNS config
|
||||
if domain_ledns:
|
||||
if not (OFM_CONFIG_DIR / 'rclone.conf').is_file():
|
||||
if not (config.ofm_config_dir / 'rclone.conf').is_file():
|
||||
sys.exit('rclone.conf missing')
|
||||
|
||||
# download the ledns certificate from bucket using rclone
|
||||
write_ledns_reader_script(domain_ledns)
|
||||
subprocess.run(['bash', HTTP_HOST_BIN_DIR / 'ledns_reader.sh'], check=True)
|
||||
subprocess.run(['bash', config.http_host_bin / 'ledns_reader.sh'], check=True)
|
||||
|
||||
curl_text_mix += create_nginx_conf(
|
||||
template_path=NGINX_DIR / 'ledns.conf',
|
||||
template_path=config.nginx_dir / 'ledns.conf',
|
||||
local='ofm_ledns',
|
||||
domain=domain_ledns,
|
||||
)
|
||||
|
||||
# processing Let's Encrypt config
|
||||
if domain_le:
|
||||
le_cert = CERTS_DIR / 'ofm_le.cert'
|
||||
le_key = CERTS_DIR / 'ofm_le.key'
|
||||
le_cert = config.certs_dir / 'ofm_le.cert'
|
||||
le_key = config.certs_dir / 'ofm_le.key'
|
||||
|
||||
if not le_cert.is_file() or not le_key.is_file():
|
||||
shutil.copyfile(Path('/etc/nginx/ssl/dummy.crt'), le_cert)
|
||||
shutil.copyfile(Path('/etc/nginx/ssl/dummy.key'), le_key)
|
||||
|
||||
curl_text_mix += create_nginx_conf(
|
||||
template_path=NGINX_DIR / 'le.conf',
|
||||
template_path=config.nginx_dir / 'le.conf',
|
||||
local='ofm_le',
|
||||
domain=domain_le,
|
||||
)
|
||||
@@ -68,7 +60,7 @@ def write_nginx_config():
|
||||
'--webroot-path=/data/nginx/acme-challenges',
|
||||
'--noninteractive',
|
||||
'-m',
|
||||
HOST_CONFIG['le_email'],
|
||||
config.host_config['le_email'],
|
||||
'--agree-tos',
|
||||
'--cert-name=ofm_le',
|
||||
# '--staging',
|
||||
@@ -121,7 +113,7 @@ def create_location_blocks(*, local, domain):
|
||||
location_str = ''
|
||||
curl_text = ''
|
||||
|
||||
for subdir in MNT_DIR.iterdir():
|
||||
for subdir in config.mnt_dir.iterdir():
|
||||
if not subdir.is_dir():
|
||||
continue
|
||||
area, version = subdir.name.split('-')
|
||||
@@ -138,7 +130,7 @@ def create_location_blocks(*, local, domain):
|
||||
|
||||
location_str += create_latest_locations(local=local, domain=domain)
|
||||
|
||||
with open(NGINX_DIR / 'location_static.conf') as fp:
|
||||
with open(config.nginx_dir / 'location_static.conf') as fp:
|
||||
location_str += '\n' + fp.read()
|
||||
|
||||
return location_str, curl_text
|
||||
@@ -147,7 +139,7 @@ def create_location_blocks(*, local, domain):
|
||||
def create_version_location(
|
||||
*, area: str, version: str, subdir: Path, local: str, domain: str
|
||||
) -> str:
|
||||
run_dir = DEFAULT_RUNS_DIR / area / version
|
||||
run_dir = config.default_runs_dir / area / version
|
||||
if not run_dir.is_dir():
|
||||
print(f" {run_dir} doesn't exists, skipping")
|
||||
return ''
|
||||
@@ -204,14 +196,14 @@ def create_version_location(
|
||||
def create_latest_locations(*, local: str, domain: str) -> str:
|
||||
location_str = ''
|
||||
|
||||
local_version_files = OFM_CONFIG_DIR.glob('tileset_version_*.txt')
|
||||
local_version_files = config.ofm_config_dir.glob('tileset_version_*.txt')
|
||||
for file in local_version_files:
|
||||
area = file.stem.split('_')[-1]
|
||||
with open(file) as fp:
|
||||
version = fp.read().strip()
|
||||
print(f' setting latest version for {area}: {version}')
|
||||
|
||||
run_dir = DEFAULT_RUNS_DIR / area / version
|
||||
run_dir = config.default_runs_dir / area / version
|
||||
tilejson_path = run_dir / f'tilejson-{local}.json'
|
||||
assert tilejson_path.is_file()
|
||||
|
||||
@@ -238,5 +230,5 @@ rclone copyto -v "remote:ofm-private/ledns/{domain_ledns}/ofm_ledns.cert" /data/
|
||||
rclone copyto -v "remote:ofm-private/ledns/{domain_ledns}/ofm_ledns.key" /data/nginx/certs/ofm_ledns.key
|
||||
""".strip()
|
||||
|
||||
with open(HTTP_HOST_BIN_DIR / 'ledns_reader.sh', 'w') as fp:
|
||||
with open(config.http_host_bin / 'ledns_reader.sh', 'w') as fp:
|
||||
fp.write(script)
|
||||
|
||||
Reference in New Issue
Block a user