downloading asset work

This commit is contained in:
Zsolt Ero
2024-08-29 16:12:34 +02:00
parent 3079a59434
commit 7196e15837
2 changed files with 17 additions and 24 deletions

View File

@@ -9,6 +9,7 @@ import click
import requests import requests
from http_host_lib.assets import ( from http_host_lib.assets import (
download_and_extract_asset_tar_gz, download_and_extract_asset_tar_gz,
download_assets,
download_sprites, download_sprites,
) )
from http_host_lib.btrfs import ( from http_host_lib.btrfs import (
@@ -38,40 +39,26 @@ def cli():
@cli.command() @cli.command()
@click.argument('area', required=False) @click.argument('area', required=False)
@click.option('--version', default='latest', help='Version string, like "20231227_043106_pt"') @click.option(
'--version', default='latest', help='Optional version string, like "20231227_043106_pt"'
)
def download_btrfs(area: str, version: str): def download_btrfs(area: str, version: str):
""" """
Downloads and extracts tiles.btrfs file from the btrfs bucket Downloads and uncompresses tiles.btrfs files from the btrfs bucket
Version can be "latest" or specified Version can be "latest" (default) or specified, like "20231227_043106_pt"
Use --version=1 to list all available versions
""" """
return download_area_version(area, version) return download_area_version(area, version)
@cli.command() @cli.command(name='download-assets')
@click.option( def download_assets_():
'--assets-dir',
help='Specify assets directory',
type=click.Path(dir_okay=True, file_okay=False, path_type=Path),
)
def download_assets(assets_dir: Path):
""" """
Downloads and extracts assets Downloads and extracts assets
""" """
print('running download_assets') download_assets()
if not assets_dir:
assets_dir = config.assets_dir
if not assets_dir.parent.exists():
sys.exit("asset dir's parent doesn't exist")
download_and_extract_asset_tar_gz(assets_dir, 'fonts')
download_and_extract_asset_tar_gz(assets_dir, 'styles')
download_and_extract_asset_tar_gz(assets_dir, 'natural_earth')
download_sprites(assets_dir)
@cli.command() @cli.command()

View File

@@ -1,6 +1,5 @@
import shutil import shutil
import subprocess import subprocess
from pathlib import Path
import requests import requests
@@ -29,6 +28,7 @@ def download_and_extract_asset_tar_gz(asset_kind):
url = f'https://assets.openfreemap.com/{asset_kind}/ofm.tar.gz' url = f'https://assets.openfreemap.com/{asset_kind}/ofm.tar.gz'
local_file = asset_dir / 'ofm.tar.gz' local_file = asset_dir / 'ofm.tar.gz'
if not download_if_size_differs(url, local_file): if not download_if_size_differs(url, local_file):
print(f' skipping asset: {asset_kind}')
return return
ofm_dir = asset_dir / 'ofm' ofm_dir = asset_dir / 'ofm'
@@ -42,12 +42,16 @@ def download_and_extract_asset_tar_gz(asset_kind):
check=True, check=True,
) )
print(f' downloaded asset: {asset_kind}')
def download_sprites(): def download_sprites():
""" """
Sprites are special assets, as we have to keep the old versions indefinitely Sprites are special assets, as we have to keep the old versions indefinitely
""" """
print('Downloading sprites')
sprites_dir = config.assets_dir / 'sprites' sprites_dir = config.assets_dir / 'sprites'
sprites_dir.mkdir(exist_ok=True, parents=True) sprites_dir.mkdir(exist_ok=True, parents=True)
@@ -60,6 +64,7 @@ def download_sprites():
sprite_name = sprite.split('/')[1].replace('.tar.gz', '') sprite_name = sprite.split('/')[1].replace('.tar.gz', '')
if (sprites_dir / sprite_name).is_dir(): if (sprites_dir / sprite_name).is_dir():
print(f' skipping sprite version: {sprite_name}')
continue continue
url = f'https://assets.openfreemap.com/sprites/{sprite_name}.tar.gz' url = f'https://assets.openfreemap.com/sprites/{sprite_name}.tar.gz'
@@ -71,3 +76,4 @@ def download_sprites():
check=True, check=True,
) )
local_file.unlink() local_file.unlink()
print(f' downloaded sprite version: {sprite_name}')