mirror of
https://github.com/certd/certd.git
synced 2026-05-15 04:27:31 +08:00
54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import sys
|
|
|
|
from certd_client import CertdClient
|
|
|
|
|
|
def require_env(name: str) -> str:
|
|
value = os.getenv(name)
|
|
if not value:
|
|
raise RuntimeError(f"Missing environment variable: {name}")
|
|
return value
|
|
|
|
|
|
def bool_env(name: str, default: bool = False) -> bool:
|
|
value = os.getenv(name)
|
|
if value is None or value == "":
|
|
return default
|
|
return value.lower() in ("1", "true", "yes", "y")
|
|
|
|
|
|
def main() -> None:
|
|
client = CertdClient(
|
|
require_env("CERTD_KEY_ID"),
|
|
require_env("CERTD_KEY_SECRET"),
|
|
base_url=os.getenv("CERTD_BASE_URL", "http://127.0.0.1:7001"),
|
|
encrypt=bool_env("CERTD_ENCRYPT"),
|
|
)
|
|
|
|
params = {"autoApply": bool_env("CERTD_AUTO_APPLY")}
|
|
cert_id = os.getenv("CERTD_CERT_ID")
|
|
domains = os.getenv("CERTD_DOMAINS")
|
|
cert_format = os.getenv("CERTD_FORMAT")
|
|
|
|
if cert_id:
|
|
params["certId"] = int(cert_id)
|
|
if domains:
|
|
params["domains"] = domains
|
|
if cert_format:
|
|
params["format"] = cert_format
|
|
if "certId" not in params and "domains" not in params:
|
|
raise RuntimeError("Set CERTD_CERT_ID or CERTD_DOMAINS")
|
|
|
|
print(client.get_cert(params))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
main()
|
|
except Exception as exc:
|
|
print(str(exc), file=sys.stderr)
|
|
sys.exit(1)
|