From 85c3636a1b59fffa9570a9144462677c7252715e Mon Sep 17 00:00:00 2001
From: leafee98 <leafee98@hotmail.com>
Date: Mon, 2 Jun 2025 23:20:52 +0800
Subject: [PATCH] Add reload-or-restart service

---
 copy-cert.json | 3 ++-
 copy-cert.py   | 6 ++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/copy-cert.json b/copy-cert.json
index d6f17c1..b663b33 100644
--- a/copy-cert.json
+++ b/copy-cert.json
@@ -12,7 +12,8 @@
             },
             "owner": "user",
             "group": "group",
-            "perm": "600"
+            "perm": "600",
+            "service": "example.service"
         }
     ]
 }
diff --git a/copy-cert.py b/copy-cert.py
index e1ee1bd..317c4b7 100644
--- a/copy-cert.py
+++ b/copy-cert.py
@@ -4,6 +4,7 @@ import json
 import logging
 import os
 import shutil
+import subprocess
 import sys
 import urllib3
 
@@ -40,6 +41,7 @@ class CertEntry:
         self.owner: str = d['owner']
         self.group: str = d['group']
         self.perm: int = int(d['perm'], base=8)
+        self.service: str = d['service']
 
 class Config:
     def __init__(self, d: Dict):
@@ -65,6 +67,7 @@ def copyFile(src: str, dst: str):
         logger.info('Copying file: {} --> {}'.format(src, dst))
         shutil.copyfile(src, dst)
 
+
 def copyCert(entry: CertEntry):
     copyFile(entry.priv.src, entry.priv.dst)
     copyFile(entry.cert.src, entry.cert.dst)
@@ -75,6 +78,9 @@ def copyCert(entry: CertEntry):
     os.chmod(entry.priv.dst, entry.perm)
     os.chmod(entry.cert.dst, entry.perm)
 
+    if entry.service is not None and entry.service != '':
+        subprocess.run(['systemctl', 'reload-or-restart', entry.service])
+
 def notifyError(cert_idx: int, ntfy_endpoint: str, error_msg: str):
     if ('' == ntfy_endpoint):
         return