|
|
@@ -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)
|