diff options
| author | Carl Hetherington <cth@carlh.net> | 2017-07-18 21:57:45 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2017-07-18 21:57:45 +0100 |
| commit | c1f09221aab6213589b226e66a165167e17b56a6 (patch) | |
| tree | 7da235bc82b9b2fa33429dcbd5f918cf33f9b7c7 | |
| parent | 176272785f14d5eb045aea7d2943d4d1ab7998f3 (diff) | |
Remove cdistvm; allow docker use with sudo.
| -rwxr-xr-x | cdist | 17 | ||||
| -rwxr-xr-x | cdistvm | 100 |
2 files changed, 12 insertions, 105 deletions
@@ -99,6 +99,7 @@ class Config: Option('osx_environment_prefix'), Option('osx_sdk_prefix'), Option('osx_sdk'), + BoolOption('docker_sudo'), Option('parallel', 4) ] try: @@ -129,6 +130,12 @@ class Config: for o in self.options: o.offer(k, v) + def docker(self): + if self.get('docker_sudo'): + return 'sudo docker' + else: + return 'docker' + config = Config() # @@ -483,15 +490,15 @@ class DockerTarget(LinuxTarget): if checkout is not None: ch = '-c %s' % checkout target = '%s-%s-%s' % (self.distro, self.version, self.bits) - container = command_and_read('docker run -itd %s /bin/bash' % target).read().strip() - command('docker exec -t %s /bin/bash -c "cdist -p %s -t %s -d %s package -w /cdist"' % (container, project, target, ch)) + container = command_and_read('%s run -itd %s /bin/bash' % (config.docker(), target)).read().strip() + command('%s exec -t %s /bin/bash -c "cdist -p %s -t %s -d %s package -w /cdist"' % (config.docker(), container, project, target, ch)) # I can't get wildcards to work with docker cp - debs = command_and_read('docker exec -t %s ls -1 /%s' % (container, target)).read().split('\n') + debs = command_and_read('%s exec -t %s ls -1 /%s' % (config.docker(), container, target)).read().split('\n') for d in debs: d = d.strip() if len(d) > 0: - command('docker cp %s:/%s/%s %s' % (container, target, d, output_dir)) - command('docker kill %s' % container) + command('%s cp %s:/%s/%s %s' % (config.docker(), container, target, d, output_dir)) + command('%s kill %s' % (config.docker(), container)) class DirectTarget(LinuxTarget): """Build directly in the current environment""" diff --git a/cdistvm b/cdistvm deleted file mode 100755 index 55b9e51..0000000 --- a/cdistvm +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/python - -import argparse -import subprocess -import shlex -import time -import os -import tempfile -import shutil - -class Error(Exception): - def __init__(self, value): - self.value = value - def __str__(self): - return self.value - def __repr__(self): - return str(self) - -parser = argparse.ArgumentParser() -parser.add_argument('command') -parser.add_argument('-p', '--project', help='project name') -parser.add_argument('--minor', help='minor version number bump', action='store_true') -parser.add_argument('--micro', help='micro version number bump', action='store_true') -parser.add_argument('--major', help='major version to return with latest', type=int) -parser.add_argument('-c', '--checkout', help='string to pass to git for checkout') -parser.add_argument('-o', '--output', help='output directory', default='.') -parser.add_argument('-q', '--quiet', help='be quiet', action='store_true') -parser.add_argument('-t', '--target', help='target') -parser.add_argument('-k', '--keep', help='keep working tree', action='store_true') -parser.add_argument('--debug', help='build with debugging symbols where possible', action='store_true') -parser.add_argument('-w', '--work', help='override default work directory') -parser.add_argument('-g', '--git-prefix', help='override configured git prefix') -args = parser.parse_args() - -cdist_cmd = 'cdist %s -t host ' % args.command -if args.project is not None: - cdist_cmd += '-p %s ' % args.project -if args.minor is True: - cdist_cmd += '--minor ' -if args.micro is True: - cdist_cmd += '--micro ' -if args.major is True: - cdist_cmd += '--major ' -if args.checkout is not None: - cdist_cmd += '--checkout %s ' % args.checkout -if args.output is not None: - cdist_cmd += '--output cdistvm ' -if args.quiet is True: - cdist_cmd += '--quiet ' -if args.keep is True: - cdist_cmd += '--keep ' -if args.debug is True: - cdist_cmd += '--debug ' -if args.work is not None: - cdist_cmd += '--work %s ' % args.work -if args.git_prefix is not None: - cdist_cmd += '--git-prefix %s ' % args.git_prefix - -def command(c): - r = os.system(c) - if (r >> 8): - raise Error('command %s failed' % c) - -ports = { 'fedora-22-32': 2000, - 'fedora-22-64': 2001, - 'fedora-23-32': 2002, - 'fedora-23-64': 2003, - 'arch-64': 2004, - 'fedora-24-32': 2005, - 'fedora-24-64': 2006, - 'fedora-25-32': 2007, - 'fedora-25-64': 2008, - } - -vbox = subprocess.Popen('vboxheadless --startvm %s' % args.target, shell=True) - -ok = False -while ok == False: - time.sleep(10) - try: - command('ssh -p %d carl@localhost "rm -rf cdistvm /var/tmp/tmp*"' % ports[args.target]) - ok = True - except Error as e: - print('Ignoring: %s' % e) - pass - -command('ssh -p %d carl@localhost %s' % (ports[args.target], cdist_cmd)) -if args.command in ['package', 'doxygen', 'manual', 'changelog', 'pot']: - tmp = tempfile.mkdtemp() - command('scp -r -P %d carl@localhost:cdistvm/* %s/' % (ports[args.target], tmp)) - command('scp -r %s/* %s/' % (tmp, args.output)) - shutil.rmtree(tmp) - -try: - command('ssh -p %d carl@localhost "sudo /sbin/poweroff"' % ports[args.target]) -except Error: - pass - -print("wait for vm to terminate...") -vbox.wait() |
