summaryrefslogtreecommitdiff
path: root/debian.py
diff options
context:
space:
mode:
Diffstat (limited to 'debian.py')
-rw-r--r--debian.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/debian.py b/debian.py
new file mode 100644
index 0000000..7456d8a
--- /dev/null
+++ b/debian.py
@@ -0,0 +1,27 @@
+import json
+import logging
+import os
+import random
+import shlex
+import socket
+import stat
+import yaml
+
+
+def debian_system(ctx, hostname=None):
+ hostname = os.environ["DEBIAN_HOST"]
+ logging.debug(f"remember Debian host {hostname}")
+ ctx["hostname"] = hostname
+
+
+def run_as_on_host(ctx, username=None, argv0=None, args=None):
+ runcmd_run = globals()["runcmd_run"]
+ runcmd_exit_code_is_zero = globals()["runcmd_exit_code_is_zero"]
+
+ logging.debug(f"run_as_on_host: username={username!r}")
+ logging.debug(f"run_as_on_host: argv0={argv0!r}")
+ logging.debug(f"run_as_on_host: args={args!r}")
+ target = f"{username}@{ctx['hostname']}"
+ argv = ["ssh", target, "--", shlex.quote(argv0)] + shlex.split(args)
+ runcmd_run(ctx, argv)
+ runcmd_exit_code_is_zero(ctx)