# Distributed under the GPL v2
# $Id$
+ 13 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
+ modules/catalyst/target/snapshot.py, modules/catalyst/util.py:
+ Add catalyst.util.create_tarball() helper function and modify snapshot
+ target to use it
+
13 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
modules/catalyst/target/snapshot.py, modules/catalyst/util.py:
Create catalyst.util.rsync() helper function
msg("Creating Portage tree snapshot " + self.settings["version_stamp"] + \
" from " + self.settings["portdir"] + "...")
- mytmp=self.settings["tmp_path"]
+ mytmp = self.settings["tmp_path"]
if not os.path.exists(mytmp):
os.makedirs(mytmp)
extra_opts="--exclude /distfiles/ --exclude /local/ --exclude CVS/ --exclude .svn --filter=H_**/files/digest-*")
msg("Compressing Portage snapshot tarball...")
- cmd("tar cjf "+self.settings["snapshot_path"]+" -C "+mytmp+" portage",\
- "Snapshot creation failure",env=self.env)
+ catalyst.util.create_tarball(self.settings["snapshot_path"], "portage", mytmp)
catalyst.hash.gen_contents_file(self.settings["snapshot_path"], self.settings)
catalyst.hash.gen_digest_file(self.settings["snapshot_path"], self.settings)
msg("Cleaning up...")
def purge(self):
- myemp=self.settings["tmp_path"]
+ myemp = self.settings["tmp_path"]
if os.path.isdir(myemp):
msg("Emptying directory " + myemp)
catalyst.util.empty_dir(myemp)
if retval != 0:
raise CatalystError("Could not rsync '%s' to '%s'" % (src, dest))
+def create_tarball(target, src, working_dir=None, keep_perm=False):
+ pack_cmd = "tar "
+ if keep_perm:
+ pack_cmd += "cjpf "
+ else:
+ pack_cmd += "cjf "
+ pack_cmd += target
+ if working_dir:
+ pack_cmd += " -C " + working_dir
+ pack_cmd += " " + src
+ retval = catalyst.spawn.spawn_bash(pack_cmd)
+ if retval != 0:
+ raise CatalystError("Could not create tarball '%s'" % (target,))
+
+
# vim: ts=4 sw=4 sta noet sts=4 ai