summaryrefslogtreecommitdiff
path: root/contractor
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2020-04-09 16:09:02 +0300
committerLars Wirzenius <liw@liw.fi>2020-04-09 16:09:02 +0300
commit2b2d87ac8c2acba6519798b437be28823911af9b (patch)
treec31c7b0cc0c7ad80172f625ec7681b70cd9374ac /contractor
parent2169f3319219ce1c7f6225d0043c2af1968def6d (diff)
downloadick-contractor-2b2d87ac8c2acba6519798b437be28823911af9b.tar.gz
Refactor: move application class to top
Diffstat (limited to 'contractor')
-rwxr-xr-xcontractor76
1 files changed, 38 insertions, 38 deletions
diff --git a/contractor b/contractor
index ccab0a9..9a50021 100755
--- a/contractor
+++ b/contractor
@@ -34,44 +34,6 @@ WORKER_UID = 1000
WORKER_GID = 1000
-
-class ExecResult:
-
- def __init__(self, stdout, stderr, exit_code):
- self.stdout = stdout
- self.stderr = stderr
- self.exit_code = exit_code
- logging.debug('RESULT: {} {!r} {!r}'.format(stdout, stderr, exit_code))
-
- def failed(self):
- return self.exit_code != 0
-
-
-def ssh(target, argv, quiet=False):
- argv = ['ssh', '--', target] + [shlex.quote(arg) for arg in argv]
- logging.info('SSH: {!r}'.format(argv))
- stdout = None
- if quiet:
- stdout = PIPE
- logging.debug(
- 'EXEC: {!r} stdout={!r} stderr={!r}'.format(
- argv, stdout, STDOUT))
- p = subprocess.Popen(argv, stderr=STDOUT, stdout=stdout)
- out, err = p.communicate()
- return ExecResult(out, err, p.returncode)
-
-
-def rsync(filename, target):
- argv = [
- 'rsync', '-aHSs', '--delete', '--exclude=lost+found', '--',
- filename, target,
- ]
- logging.info('RSYNC: {!r}'.format(argv))
- p = subprocess.Popen(argv, stderr=STDOUT, stdout=PIPE)
- out, err = p.communicate()
- return ExecResult(out, err, p.returncode)
-
-
class ContractorApplication(cliapp.Application):
def add_settings(self):
@@ -354,6 +316,44 @@ class ContractorApplication(cliapp.Application):
print(msg)
+
+class ExecResult:
+
+ def __init__(self, stdout, stderr, exit_code):
+ self.stdout = stdout
+ self.stderr = stderr
+ self.exit_code = exit_code
+ logging.debug('RESULT: {} {!r} {!r}'.format(stdout, stderr, exit_code))
+
+ def failed(self):
+ return self.exit_code != 0
+
+
+def ssh(target, argv, quiet=False):
+ argv = ['ssh', '--', target] + [shlex.quote(arg) for arg in argv]
+ logging.info('SSH: {!r}'.format(argv))
+ stdout = None
+ if quiet:
+ stdout = PIPE
+ logging.debug(
+ 'EXEC: {!r} stdout={!r} stderr={!r}'.format(
+ argv, stdout, STDOUT))
+ p = subprocess.Popen(argv, stderr=STDOUT, stdout=stdout)
+ out, err = p.communicate()
+ return ExecResult(out, err, p.returncode)
+
+
+def rsync(filename, target):
+ argv = [
+ 'rsync', '-aHSs', '--delete', '--exclude=lost+found', '--',
+ filename, target,
+ ]
+ logging.info('RSYNC: {!r}'.format(argv))
+ p = subprocess.Popen(argv, stderr=STDOUT, stdout=PIPE)
+ out, err = p.communicate()
+ return ExecResult(out, err, p.returncode)
+
+
class BuildSpec:
def __init__(self, yaml_text):