Przeglądaj źródła

utils/mkhtml.py: fix addons_paths.json file path (#2054)

When compiled addon has own dir e.g. ~/.grass8/addons/db.join/
with bin/ docs/ etc/ scripts/ subdir, required for compilation
addons on osgeo lxd container server and generation of modules.xml
file (build-xml.py script),  addons_paths.json file is stored
one level dir up as usually.
Tomas Zigo 3 lat temu
rodzic
commit
7ff374675a
1 zmienionych plików z 19 dodań i 7 usunięć
  1. 19 7
      utils/mkhtml.py

+ 19 - 7
utils/mkhtml.py

@@ -303,13 +303,25 @@ def get_addon_path():
     if addon_base:
         # addons_paths.json is file created during install extension
         # check get_addons_paths() function in the g.extension.py file
-        addons_paths = os.path.join(addon_base, "addons_paths.json")
-        if os.path.exists(addons_paths):
-            with open(addons_paths) as f:
-                addons_paths = json.load(f)
-            for addon in addons_paths["tree"]:
-                if pgm == pathlib.Path(addon["path"]).name:
-                    return addon["path"]
+        addons_file = "addons_paths.json"
+        addons_paths = os.path.join(addon_base, addons_file)
+        if not os.path.exists(addons_paths):
+            # Compiled addon has own dir e.g. ~/.grass8/addons/db.join/
+            # with bin/ docs/ etc/ scripts/ subdir, required for compilation
+            # addons on osgeo lxd container server and generation of
+            # modules.xml file (build-xml.py script), when addons_paths.json
+            # file is stored one level dir up
+            addons_paths = os.path.join(
+                os.path.abspath(os.path.join(addon_base, "..")),
+                addons_file,
+            )
+            if not os.path.exists(addons_paths):
+                return
+        with open(addons_paths) as f:
+            addons_paths = json.load(f)
+        for addon in addons_paths["tree"]:
+            if pgm == pathlib.Path(addon["path"]).name:
+                return addon["path"]
 
 
 # process header