فهرست منبع

Add commands to create repo and export key

jherve 1 ماه پیش
والد
کامیت
8b8c6ef43a
2فایلهای تغییر یافته به همراه16 افزوده شده و 3 حذف شده
  1. 5 0
      README.md
  2. 11 3
      start.py

+ 5 - 0
README.md

@@ -2,3 +2,8 @@
 
 1. `borgmatic repo-create --encryption repokey`
 1. `borgmatic key export`
+
+Note : This can also be done this way :
+
+1. `BORG_PASSPHRASE_NAME=<passphrase_name> STORAGE_BOX_USER=<user> SSH_KEY_NAME=<name> python3 start.py create_repo`
+1. `BORG_PASSPHRASE_NAME=<passphrase_name> STORAGE_BOX_USER=<user> SSH_KEY_NAME=<name> python3 start.py export_key`

+ 11 - 3
start.py

@@ -180,9 +180,10 @@ class BorgmaticContainer:
     def rm(self):
         subprocess.run(["podman", "rm", "-f", self.name])
 
-    def exec(self, cmd):
-        args = ["podman", "exec", "-ti", self.name] + cmd
-        subprocess.run(args)
+    def exec(self, cmd: list[str], env_vars: list[str] = []):
+        args = ["podman", "exec", "-ti"]
+        args += [a for var in env_vars for a in ["-e", var]]
+        subprocess.run(args + [self.name] + cmd)
 
     @classmethod
     def new(cls, hostname: str, login: str):
@@ -200,6 +201,7 @@ def main():
         print("no secret required ?")
 
     container = BorgmaticContainer.new(hostname, login)
+    env_vars = ["BORG_PASSPHRASE_NAME", "STORAGE_BOX_USER", "SSH_KEY_NAME"]
 
     try:
         if sys.argv[1] == "create_secrets":
@@ -217,6 +219,12 @@ def main():
         elif sys.argv[1] == "bash":
             container.exec(["bash"])
 
+        elif sys.argv[1] == "create_repo":
+            container.exec(["borgmatic", "repo-create", "--encryption", "repokey"], env_vars)
+
+        elif sys.argv[1] == "export_key":
+            container.exec(["borgmatic", "export", "key"], env_vars)
+
     except IndexError:
         print("You should provide an argument")
         exit(1)