home · contact · privacy
Add read of optional config file at ~/.config/bricksplom/config.json
authorPlom Heller <plom@plomlompom.com>
Thu, 6 Aug 2026 18:46:36 +0000 (20:46 +0200)
committerPlom Heller <plom@plomlompom.com>
Thu, 6 Aug 2026 18:46:36 +0000 (20:46 +0200)
src/run.py

index 8c841ae6d3f4063f2a609ca968020a51c2ce819c..ce8fe2a5fc582438584145ed4501a0d40c4f821f 100755 (executable)
@@ -7,7 +7,9 @@ from argparse import (
         ArgumentParser,
         Namespace as ArgumentNamespace,
         )
+from json import loads as json_loads
 from os import environ
+from pathlib import Path
 # ourselves
 from bricksplom.misc import (
         BricksDb,
@@ -19,7 +21,8 @@ from bricksplom.misc import (
         )
 
 NAME_ENV_DIRNAME = 'BRICKSPLOM_DIR'
-NAME_ENV_LDRAW = 'PATH_LDRAW'
+NAME_ENV_LDRAW = 'LDRAW_DIR'
+NAME_ENV_CONFIG = 'BRICKSPLON_CONFIG'
 
 
 def main(
@@ -76,9 +79,14 @@ def main(
         return args
 
     args = parse_args()
-    db = BricksDb(environ.get(NAME_ENV_DIRNAME, '.'),
-                  environ.get(NAME_ENV_LDRAW, ''),
-                  args.ldraw)
+    path_conffile = Path(
+        environ.get(NAME_ENV_CONFIG, '')
+        or str(Path.home().joinpath('.config', 'bricksplom', 'config.json')))
+    config = (json_loads(path_conffile.read_text(encoding='utf8'))
+              if path_conffile.is_file() else {})
+    path_tables = environ.get(NAME_ENV_DIRNAME, config.get('path_tables', ''))
+    path_ldraw = environ.get(NAME_ENV_LDRAW, config.get('path_ldraw', ''))
+    db = BricksDb(path_tables, path_ldraw, args.ldraw)
     print(
         db.lookup(
             table_name=args.table,