|
20 | 20 | # > http://www.fsf.org/licensing/licenses/lgpl.html |
21 | 21 | # > http://www.opensource.org/licenses/lgpl-license.php |
22 | 22 | # |
| 23 | +import os |
23 | 24 | import pathlib |
24 | 25 | import sqlite3 |
| 26 | +import sys |
25 | 27 | from typing import Tuple, Dict, Set, List |
26 | 28 |
|
27 | 29 | from .mappings import ARSMapping, CodeMappings, AlleleGroups |
@@ -67,8 +69,25 @@ def create_db_connection(data_dir, imgt_version, ro=False): |
67 | 69 | if not pathlib.Path(data_dir).exists(): |
68 | 70 | pathlib.Path(data_dir).mkdir(parents=True, exist_ok=True) |
69 | 71 |
|
70 | | - if not pathlib.Path(db_filename).exists(): |
71 | | - print(f"Creating {db_filename} as cache.") |
| 72 | + # Check for permission to read/write |
| 73 | + if pathlib.Path(db_filename).exists(): |
| 74 | + # Check file is readable |
| 75 | + if not os.access(db_filename, os.R_OK): |
| 76 | + print( |
| 77 | + f"Permission Error reading {db_filename}" |
| 78 | + "Please specify accessible --data-dir." |
| 79 | + ) |
| 80 | + sys.exit(1) |
| 81 | + else: |
| 82 | + # Check directory is writeable |
| 83 | + if os.access(data_dir, os.W_OK): |
| 84 | + print(f"Creating {db_filename} as cache.") |
| 85 | + else: |
| 86 | + print( |
| 87 | + f"Directory {data_dir} is not writeable." |
| 88 | + "Please specify accessible --data-dir." |
| 89 | + ) |
| 90 | + sys.exit(1) |
72 | 91 |
|
73 | 92 | # Open the database for read/write |
74 | 93 | file_uri = f"file:{db_filename}" |
|
0 commit comments