|
10 | 10 | def download_fonts(assets_dir: Path):
|
11 | 11 | """
|
12 | 12 | Download and extract font assets if their file size differ.
|
13 |
| - Making updates atomic, with extraction to a temp dest + rename |
14 | 13 | """
|
15 | 14 |
|
16 | 15 | fonts_dir = assets_dir / 'fonts'
|
17 | 16 | fonts_dir.mkdir(exist_ok=True, parents=True)
|
18 | 17 |
|
19 |
| - fonts_temp = assets_dir / 'fonts_temp' |
| 18 | + url = 'https://assets.openfreemap.com/fonts/ofm.tar.gz' |
| 19 | + local_file = fonts_dir / 'ofm.tar.gz' |
| 20 | + if not download_if_size_differs(url, local_file): |
| 21 | + return |
20 | 22 |
|
21 |
| - for font in ['ofm']: |
22 |
| - url = f'https://assets.openfreemap.com/fonts/{font}.tar.gz' |
23 |
| - local_file = fonts_dir / f'{font}.tar.gz' |
24 |
| - if not download_if_size_differs(url, local_file): |
25 |
| - continue |
| 23 | + ofm_dir = fonts_dir / 'ofm' |
| 24 | + shutil.rmtree(ofm_dir, ignore_errors=True) |
26 | 25 |
|
27 |
| - shutil.rmtree(fonts_temp, ignore_errors=True) |
28 |
| - fonts_temp.mkdir() |
| 26 | + subprocess.run( |
| 27 | + ['tar', '-xzf', local_file, '-C', fonts_dir], |
| 28 | + check=True, |
| 29 | + ) |
29 | 30 |
|
30 |
| - subprocess.run( |
31 |
| - ['tar', '-xzf', local_file, '-C', fonts_temp], |
32 |
| - check=True, |
33 |
| - ) |
34 | 31 |
|
35 |
| - target_dir = fonts_dir / font |
36 |
| - target_dir_renamed = fonts_dir / f'{font}.bak' |
37 |
| - temp_dir = fonts_temp / font |
| 32 | +def download_styles(assets_dir: Path): |
| 33 | + """ |
| 34 | + Download and extract style assets if their file size differ. |
| 35 | + """ |
| 36 | + |
| 37 | + styles_dir = assets_dir / 'styles' |
| 38 | + styles_dir.mkdir(exist_ok=True, parents=True) |
38 | 39 |
|
39 |
| - if target_dir.exists(): |
40 |
| - target_dir.rename(target_dir_renamed) |
41 |
| - temp_dir.rename(target_dir) |
| 40 | + url = 'https://assets.openfreemap.com/styles/ofm.tar.gz' |
| 41 | + local_file = styles_dir / 'ofm.tar.gz' |
| 42 | + if not download_if_size_differs(url, local_file): |
| 43 | + return |
42 | 44 |
|
43 |
| - shutil.rmtree(target_dir_renamed, ignore_errors=True) |
| 45 | + ofm_dir = styles_dir / 'ofm' |
| 46 | + shutil.rmtree(ofm_dir, ignore_errors=True) |
44 | 47 |
|
45 |
| - shutil.rmtree(fonts_temp, ignore_errors=True) |
| 48 | + subprocess.run( |
| 49 | + ['tar', '-xzf', local_file, '-C', styles_dir], |
| 50 | + check=True, |
| 51 | + ) |
46 | 52 |
|
47 | 53 |
|
48 | 54 | def download_sprites(assets_dir: Path):
|
49 | 55 | """
|
50 |
| - Download and extract sprites if their file size differ. |
| 56 | + Download and extract sprites if the version is not available |
51 | 57 | """
|
52 | 58 |
|
53 | 59 | sprites_dir = assets_dir / 'sprites'
|
|
0 commit comments