summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-04-19 14:29:33 +0100
committerCarl Hetherington <cth@carlh.net>2015-04-19 14:29:33 +0100
commit29052cd43a17bf4b52cc8f7ab0bfcdadcfb37fb2 (patch)
treed2d78714db0d3bf93195e80f73c4d0029016d0fc
parent4293bbc5866f08fc228ef0599b998707e98d89d8 (diff)
Add checkout command.
-rwxr-xr-xcdist12
1 files changed, 12 insertions, 0 deletions
diff --git a/cdist b/cdist
index 8990440..300f308 100755
--- a/cdist
+++ b/cdist
@@ -645,6 +645,7 @@ def main():
"latest": "print out the latest version",
"test": "run the project's unit tests",
"shell": "build the project then start a shell in its chroot",
+ "checkout": "check out the project",
"revision": "print the head git revision number"
}
@@ -898,6 +899,17 @@ def main():
print command_and_read('git rev-parse HEAD').readline().strip()[:7]
target.cleanup()
+ elif globals.command == 'checkout':
+
+ if args.output is None:
+ raise Error('you must specify -o or --output')
+
+ target = SourceTarget()
+ tree = globals.trees.get(args.project, args.checkout, target)
+ with TreeDirectory(tree):
+ shutil.copytree('.', args.output)
+ target.cleanup()
+
else:
raise Error('invalid command %s' % globals.command)