wic: implement ext fs support for 'wic rm'

Implemented removing files or directories from the ext
partition using debugfs tool.

(From OE-Core rev: be530b7c7beae6f9fc95eed245cb37066d56581e)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh
2017-09-05 14:54:38 +03:00
committed by Richard Purdie
parent 9f90956967
commit 2c16117dce

View File

@@ -339,18 +339,23 @@ class Disk:
def remove(self, pnum, path):
"""Remove files/dirs from the partition."""
partimg = self._get_part_image(pnum)
cmd = "{} -i {} ::{}".format(self.mdel, partimg, path)
try:
exec_cmd(cmd)
except WicError as err:
if "not found" in str(err) or "non empty" in str(err):
# mdel outputs 'File ... not found' or 'directory .. non empty"
# try to use mdeltree as path could be a directory
cmd = "{} -i {} ::{}".format(self.mdeltree,
partimg, path)
if self.partitions[pnum].fstype.startswith('ext'):
exec_cmd("{} {} -wR 'rm {}'".format(self.debugfs,
self._get_part_image(pnum),
path), as_shell=True)
else: # fat
cmd = "{} -i {} ::{}".format(self.mdel, partimg, path)
try:
exec_cmd(cmd)
else:
raise err
except WicError as err:
if "not found" in str(err) or "non empty" in str(err):
# mdel outputs 'File ... not found' or 'directory .. non empty"
# try to use mdeltree as path could be a directory
cmd = "{} -i {} ::{}".format(self.mdeltree,
partimg, path)
exec_cmd(cmd)
else:
raise err
self._put_part_image(pnum)
def write(self, target, expand):