Fix a couple of bits.
authorCarl Hetherington <cth@carlh.net>
Wed, 12 Jul 2017 14:26:59 +0000 (15:26 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 12 Jul 2017 14:26:59 +0000 (15:26 +0100)
cdist

diff --git a/cdist b/cdist
index fc6e4834034ecdab5b0fe1383780802f067babad..ea9afebceab47c06ca1b6c51370e98d1afbf8813 100755 (executable)
--- a/cdist
+++ b/cdist
@@ -162,7 +162,11 @@ def makedirs(d):
     d includes a colon, otherwise locally.
     """
     if d.find(':') == -1:
-        os.makedirs(d)
+        try:
+            os.makedirs(d)
+        except OSError as e:
+            if e.errno != 17:
+                raise e
     else:
         s = d.split(':')
         command('ssh %s -- mkdir -p %s' % (s[0], s[1]))
@@ -350,8 +354,12 @@ class Target(object):
         tree = globals.trees.get(project, checkout, self)
         tree.build_dependencies()
         tree.build()
-        for p in tree.call('package', tree.version):
-            copyfile(p, os.path.join(output_dir, os.path.basename(devel_to_git(tree.git_commit, p))))
+        packages = tree.call('package', tree.version)
+        if isinstance(packages, (str, unicode)):
+            copyfile(packages, os.path.join(output_dir, os.path.basename(devel_to_git(tree.git_commit, packages))))
+        else:
+            for p in packages:
+                copyfile(p, os.path.join(output_dir, os.path.basename(devel_to_git(tree.git_commit, p))))
 
     def test(self, tree, test):
         """test is the test case to run, or None"""