#!/usr/bin/python
-# Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net>
+# Copyright (C) 2012-2017 Carl Hetherington <cth@carlh.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
class Globals:
quiet = False
command = None
+ dry_run = False
trees = Trees()
globals = Globals()
print('\x1b[33m* %s\x1b[0m' % m)
def scp_escape(n):
+ """Escape a host:filename string for use with an scp command"""
s = n.split(':')
assert(len(s) == 1 or len(s) == 2)
if len(s) == 2:
command('scp %s %s' % (scp_escape(a), scp_escape(b)))
def makedirs(d):
+ """
+ Make directories either locally or on a remote host; remotely if
+ d includes a colon, otherwise locally.
+ """
if d.find(':') == -1:
os.makedirs(d)
else:
self.variables = {}
self.debug = False
- def package(self, project, checkout, dry_run):
+ def package(self, project, checkout):
tree = globals.trees.get(project, checkout, self)
- tree.build_dependencies(dry_run)
- tree.build(dry_run)
+ tree.build_dependencies()
+ tree.build()
return tree.call('package', tree.version), tree.git_commit
def test(self, tree, test):
"""test is the test case to run, or None"""
- tree.build_dependencies(args.dry_run)
- tree.build(args.dry_run)
+ tree.build_dependencies()
+ tree.build()
return tree.call('test', test)
def set(self, a, b):
log('host -> %s' % c)
command('%s %s' % (self.variables_string(), c))
- def package(self, project, checkout, dry_run):
- self.deb = self.debian.package(project, checkout, dry_run)
+ def package(self, project, checkout):
+ self.deb = self.debian.package(project, checkout)
return globals.trees.get(project, checkout, self).call('package', tree.version), tree.git_commit
self.set('PATH', '$PATH:/usr/bin:/sbin:/usr/local/bin:%s/bin' % enviro)
self.set('MACOSX_DEPLOYMENT_TARGET', config.get('osx_sdk'))
- def package(self, project, checkout, dry_run):
+ def package(self, project, checkout):
raise Error('cannot package non-universal OS X versions')
def __init__(self, directory=None):
super(OSXUniversalTarget, self).__init__(directory)
- def package(self, project, checkout, dry_run):
+ def package(self, project, checkout):
for b in [32, 64]:
target = OSXSingleTarget(b, os.path.join(self.directory, '%d' % b))
tree = globals.trees.get(project, checkout, target)
- tree.build_dependencies(dry_run)
- tree.build(dry_run)
+ tree.build_dependencies()
+ tree.build()
tree = globals.trees.get(project, checkout, self)
with TreeDirectory(tree):
def cleanup(self):
rmtree(self.directory)
- def package(self, project, checkout, dry_run):
+ def package(self, project, checkout):
tree = globals.trees.get(project, checkout, self)
with TreeDirectory(tree):
name = read_wscript_variable(os.getcwd(), 'APPNAME')
with TreeDirectory(self):
return self.cscript[function](self.target, *args)
- def build_dependencies(self, dry_run, options=None):
+ def build_dependencies(self, options=None):
if not 'dependencies' in self.cscript:
return
if len(inspect.getargspec(self.cscript['dependencies']).args) == 2:
deps = self.call('dependencies', options)
else:
+ log("Deprecated cscipt dependencies() method with no parameter")
deps = self.call('dependencies')
for d in deps:
msg += ' with options %s' % options
log(msg)
- dep.build_dependencies(dry_run, options)
- dep.build(dry_run, options)
+ dep.build_dependencies(options)
+ dep.build(options)
- def build(self, dry_run, options=None):
+ def build(self, options=None):
if self.built:
return
variables = copy.copy(self.target.variables)
- if not dry_run:
+ if not globals.dry_run:
if len(inspect.getargspec(self.cscript['build']).args) == 2:
self.call('build', options)
else:
globals.quiet = args.quiet
globals.command = args.command
+ globals.dry_run = args.dry_run
if not globals.command in commands:
e = 'command must be one of:\n' + one_of
target = target_factory(args.target, args.debug, args.work)
tree = globals.trees.get(args.project, args.checkout, target)
- tree.build_dependencies(dry_run)
- tree.build(dry_run)
+ tree.build_dependencies()
+ tree.build()
if not args.keep:
target.cleanup()
raise Error('you must specify -t or --target')
target = target_factory(args.target, args.debug, args.work)
- packages, git_commit = target.package(args.project, args.checkout, args.dry_run)
+ packages, git_commit = target.package(args.project, args.checkout)
if hasattr(packages, 'strip') or (not hasattr(packages, '__getitem__') and not hasattr(packages, '__iter__')):
packages = [packages]