ApplyLayer() use RemoveAll to handle removing directories

rmTargetPath can be a directory, so we have to use RemoveAll() or we
will fail to whiteout non-empty directories.
This commit is contained in:
Alexander Larsson 2013-11-14 22:56:18 +01:00
parent eace2dbe1d
commit 006e2a600c

View file

@ -49,7 +49,7 @@ func ApplyLayer(dest string, layer Archive) error {
rmTargetPath := filepath.Join(filepath.Dir(fullPath), rmTargetName)
// Remove the file targeted by the whiteout
log.Printf("Removing whiteout target %s", rmTargetPath)
_ = os.Remove(rmTargetPath)
_ = os.RemoveAll(rmTargetPath)
// Remove the whiteout itself
log.Printf("Removing whiteout %s", fullPath)
_ = os.RemoveAll(fullPath)