summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildstream/plugins/sources/patch.py12
1 files changed, 5 insertions, 7 deletions
diff --git a/buildstream/plugins/sources/patch.py b/buildstream/plugins/sources/patch.py
index 40fd106ec..a8a2da26c 100644
--- a/buildstream/plugins/sources/patch.py
+++ b/buildstream/plugins/sources/patch.py
@@ -80,14 +80,12 @@ class PatchSource(Source):
def stage(self, directory):
with self.timed_activity("Applying local patch: {}".format(self.path)):
- if not os.path.isdir(directory):
- raise SourceError(
- "Patch directory '{}' does not exist".format(directory),
- reason="patch-no-directory"
- )
- elif not os.listdir(directory):
- raise SourceError("Empty patch directory '{}'".format(directory),
+
+ # Bail out with a comprehensive message if the target directory is empty
+ if not os.listdir(directory):
+ raise SourceError("Nothing to patch in directory '{}'".format(directory),
reason="patch-no-files")
+
strip_level_option = "-p{}".format(self.strip_level)
self.call([self.host_patch, strip_level_option, "-i", self.fullpath, "-d", directory],
fail="Failed to apply patch {}".format(self.path))