diff --git a/src/License_Authority.py b/src/License_Authority.py index 52f4d39..ee98c2e 100644 --- a/src/License_Authority.py +++ b/src/License_Authority.py @@ -7,27 +7,22 @@ Repo: https://gitea.eibl.tech/me0nline/LOGAR-LICENSING.git import os import sys +import importlib.util -# Prefer the submodule implementation ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) -SUBMODULE_DIR = os.path.join(ROOT_DIR, "LOGAR-LICENSING") -if SUBMODULE_DIR not in sys.path: - sys.path.insert(0, SUBMODULE_DIR) +SUBMODULE_FILE = os.path.join(ROOT_DIR, "LOGAR-LICENSING", "License_Authority.py") -from License_Authority import ( - init_authority_db, - extract_license_info_from_cert, - generate_master_root_ca, - sign_ca_csr_with_seats, - issue_license_from_csr, - renew_license_cert, - revoke_license, - list_licenses, - main, - OID_LOGAR_SEATS, - OID_LOGAR_LICENSE_ID, - OID_LOGAR_ISSUER_URL -) +if not os.path.exists(SUBMODULE_FILE): + raise ImportError(f"LOGAR-LICENSING submodule not found at {SUBMODULE_FILE}. Run 'git submodule update --init --recursive'.") + +spec = importlib.util.spec_from_file_location("_submodule_authority", SUBMODULE_FILE) +_sub = importlib.util.module_from_spec(spec) +spec.loader.exec_module(_sub) + +# Export public symbols from submodule into this module's namespace +for attr in dir(_sub): + if not attr.startswith("__"): + globals()[attr] = getattr(_sub, attr) if __name__ == "__main__": - main() + _sub.main()