summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2017-07-18 21:57:45 +0100
committerCarl Hetherington <cth@carlh.net>2017-07-18 21:57:45 +0100
commitc1f09221aab6213589b226e66a165167e17b56a6 (patch)
tree7da235bc82b9b2fa33429dcbd5f918cf33f9b7c7
parent176272785f14d5eb045aea7d2943d4d1ab7998f3 (diff)
Remove cdistvm; allow docker use with sudo.
-rwxr-xr-xcdist17
-rwxr-xr-xcdistvm100
2 files changed, 12 insertions, 105 deletions
diff --git a/cdist b/cdist
index ea9afeb..1173c8e 100755
--- a/cdist
+++ b/cdist
@@ -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()