diff --git a/init-server.py b/init-server.py index f3d5d52..d810cf4 100755 --- a/init-server.py +++ b/init-server.py @@ -3,7 +3,7 @@ import click from fabric import Config, Connection -from ssh_lib import SCRIPTS_DIR, dotenv_val +from ssh_lib import SCRIPTS_DIR, VENV_BIN, dotenv_val from ssh_lib.planetiler import planetiler from ssh_lib.tasks import ( prepare_http_host, @@ -118,7 +118,7 @@ def debug(hostname, user, port): # upload_http_host_config(c) # upload_http_host_files(c) - # sudo_cmd(c, '/data/ofm/venv/bin/python -u /data/ofm/http_host/bin/host_manager.py nginx-sync') + # sudo_cmd(c, f'{VENV_BIN}/python -u /data/ofm/http_host/bin/host_manager.py nginx-sync') planetiler(c) diff --git a/ssh_lib/__init__.py b/ssh_lib/__init__.py index f49cad8..fe71121 100644 --- a/ssh_lib/__init__.py +++ b/ssh_lib/__init__.py @@ -12,6 +12,7 @@ REMOTE_CONFIG = '/data/ofm/config' TILE_GEN_SRC = '/data/ofm/tile_gen/src' TILE_GEN_BIN = '/data/ofm/tile_gen/bin' HTTP_HOST_BIN = '/data/ofm/http_host/bin' +VENV_BIN = '/data/ofm/venv/bin' DOTENV_VALUES = dotenv_values(f'{CONFIG_DIR}/.env') diff --git a/ssh_lib/planetiler.py b/ssh_lib/planetiler.py index cfdd689..7df5827 100644 --- a/ssh_lib/planetiler.py +++ b/ssh_lib/planetiler.py @@ -1,5 +1,5 @@ from ssh_lib import TILE_GEN_BIN, TILE_GEN_SRC -from ssh_lib.utils import apt_get_install, apt_get_update, sudo_cmd +from ssh_lib.utils import apt_get_install, apt_get_update, exists, sudo_cmd PLANETILER_COMMIT = 'cf6c55' @@ -7,6 +7,10 @@ PLANETILER_PATH = f'{TILE_GEN_BIN}/planetiler.jar' def planetiler(c): + if exists(c, TILE_GEN_BIN): + print('planetiler exists, skipping') + return + apt_get_update(c) apt_get_install(c, 'openjdk-21-jre-headless') diff --git a/ssh_lib/tasks.py b/ssh_lib/tasks.py index 30c7715..ea73200 100644 --- a/ssh_lib/tasks.py +++ b/ssh_lib/tasks.py @@ -8,6 +8,7 @@ from ssh_lib import ( REMOTE_CONFIG, SCRIPTS_DIR, TILE_GEN_BIN, + VENV_BIN, dotenv_val, ) from ssh_lib.benchmark import c1000k, wrk @@ -51,33 +52,10 @@ def prepare_venv(c): def prepare_tile_gen(c): planetiler(c) - for file in [ - 'extract_btrfs.sh', - 'planetiler_monaco.sh', - 'planetiler_planet.sh', - 'cloudflare_index.sh', - 'cloudflare_upload.sh', - ]: - put( - c, - SCRIPTS_DIR / 'tile_gen' / file, - TILE_GEN_BIN, - permissions='755', - ) + put_dir(c, SCRIPTS_DIR / 'tile_gen', TILE_GEN_BIN, file_permissions='755') - put( - c, - SCRIPTS_DIR / 'tile_gen' / 'extract_mbtiles' / 'extract_mbtiles.py', - f'{TILE_GEN_BIN}/extract_mbtiles/extract_mbtiles.py', - create_parent_dir=True, - ) - - put( - c, - SCRIPTS_DIR / 'tile_gen' / 'shrink_btrfs' / 'shrink_btrfs.py', - f'{TILE_GEN_BIN}/shrink_btrfs/shrink_btrfs.py', - create_parent_dir=True, - ) + for dirname in ['tile_gen_lib', 'extract_mbtiles', 'shrink_btrfs']: + put_dir(c, SCRIPTS_DIR / 'tile_gen' / dirname, f'{TILE_GEN_BIN}/{dirname}') if (CONFIG_DIR / 'rclone.conf').exists(): put( @@ -88,6 +66,8 @@ def prepare_tile_gen(c): user='ofm', ) + c.sudo(f'{VENV_BIN}/pip install -e /data/ofm/http_host/bin') + c.sudo('chown ofm:ofm /data/ofm/tile_gen') c.sudo('chown ofm:ofm -R /data/ofm/tile_gen/bin') @@ -152,11 +132,11 @@ def prepare_http_host(c): upload_http_host_files(c) upload_certificates(c) - c.sudo('/data/ofm/venv/bin/pip install -e /data/ofm/http_host/bin') + c.sudo(f'{VENV_BIN}/pip install -e /data/ofm/http_host/bin') def run_http_host_sync(c): - sudo_cmd(c, '/data/ofm/venv/bin/python -u /data/ofm/http_host/bin/host_manager.py sync') + sudo_cmd(c, f'{VENV_BIN}/python -u /data/ofm/http_host/bin/host_manager.py sync') def upload_http_host_files(c):