# Distributed under the GPL v2
# $Id$
+ 13 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
+ modules/catalyst/target/generic_stage.py,
+ modules/catalyst/target/netboot.py, modules/catalyst/util.py:
+ Create catalyst.util.create_tarball() helper function
+ Replace more manual calls to rsync with catalyst.util.rsync()
+ Replace manual calls to 'tar cjf' with catalyst.util.create_tarball()
+
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
for x in self.settings["root_overlay"]:
if os.path.exists(x):
msg("Copying root_overlay: " + x)
- cmd("rsync -a "+x+"/ "+\
- self.settings["chroot_path"],\
- "root_overlay: "+x+\
- " copy failed.",env=self.env)
+ catalyst.util.rsync(x + "/", self.settings["chroot_path"])
def base_dirs(self):
pass
msg("Creating stage tarball...")
- cmd("tar cjpf "+self.settings["target_path"]+" -C "+\
- self.settings["stage_path"]+" .",\
- "Couldn't create stage tarball",env=self.env)
+ catalyst.util.create_tarball(self.settings["target_path"], ".", working_dir=self.settings["stage_path"], keep_perm=True)
catalyst.hash.gen_contents_file(self.settings["target_path"], self.settings)
catalyst.hash.gen_digest_file(self.settings["target_path"], self.settings)
if "netboot/overlay" in self.settings:
for x in self.settings["netboot/overlay"]:
if os.path.exists(x):
- cmd("rsync -a "+x+"/ "+\
- self.settings["chroot_path"] + self.settings["merge_path"], "netboot/overlay: "+x+" copy failed.",env=self.env)
+ catalyst.util.rsync(x + "/", self.settings["chroot_path"] + self.settings["merge_path"])
self.set_autoresume("setup_overlay")
def move_kernels(self):
if retval != 0:
raise CatalystError("Could not create tarball '%s'" % (target,))
+def unpack_tarball(src, dest, keep_perm=True):
+ unpack_cmd = "tar "
+ if keep_perm:
+ unpack_cmd += "xjpf "
+ else:
+ unpack_cmd += "xjf "
+ unpack_cmd += src + " -C " + dest
+ retval = catalyst.spawn.spawn_bash(unpack_cmd)
+ if retval != 0:
+ raise CatalystError("Could not unpack tarball '%s'" % (src,))
# vim: ts=4 sw=4 sta noet sts=4 ai