mirror of
https://github.com/pirate/ArchiveBox.git
synced 2025-08-15 19:14:07 +02:00
add new plugin order sigil file feature
This commit is contained in:
@@ -14,6 +14,15 @@ pm.add_hookspecs(base_spec)
|
|||||||
|
|
||||||
###### PLUGIN DISCOVERY AND LOADING ########################################################
|
###### PLUGIN DISCOVERY AND LOADING ########################################################
|
||||||
|
|
||||||
|
def get_plugin_order(plugin_entrypoint: Path):
|
||||||
|
order = 999
|
||||||
|
try:
|
||||||
|
# if .plugin_order file exists, use it to set the load priority
|
||||||
|
order = int((plugin_entrypoint.parent / '.plugin_order').read_text())
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
return (order, plugin_entrypoint)
|
||||||
|
|
||||||
def register_hookspecs(hookspecs):
|
def register_hookspecs(hookspecs):
|
||||||
for hookspec_import_path in hookspecs:
|
for hookspec_import_path in hookspecs:
|
||||||
hookspec_module = importlib.import_module(hookspec_import_path)
|
hookspec_module = importlib.import_module(hookspec_import_path)
|
||||||
@@ -23,7 +32,7 @@ def register_hookspecs(hookspecs):
|
|||||||
def find_plugins_in_dir(plugins_dir: Path, prefix: str) -> Dict[str, Path]:
|
def find_plugins_in_dir(plugins_dir: Path, prefix: str) -> Dict[str, Path]:
|
||||||
return {
|
return {
|
||||||
f"{prefix}.{plugin_entrypoint.parent.name}": plugin_entrypoint.parent
|
f"{prefix}.{plugin_entrypoint.parent.name}": plugin_entrypoint.parent
|
||||||
for plugin_entrypoint in sorted(plugins_dir.glob("*/apps.py")) # key=get_plugin_order # Someday enforcing plugin import order may be required, but right now it's not needed
|
for plugin_entrypoint in sorted(plugins_dir.glob("*/apps.py"), key=get_plugin_order)
|
||||||
} # "plugins_pkg.pip": "/app/archivebox/plugins_pkg/pip"
|
} # "plugins_pkg.pip": "/app/archivebox/plugins_pkg/pip"
|
||||||
|
|
||||||
|
|
||||||
|
1
archivebox/plugins_pkg/pip/.plugin_order
Normal file
1
archivebox/plugins_pkg/pip/.plugin_order
Normal file
@@ -0,0 +1 @@
|
|||||||
|
0
|
Reference in New Issue
Block a user