forked from pool/quilt
545a92cf89
- quilt-setup-05-fix-check_for_existing_files.patch: Fix handling of directory names including white spaces by check_for_existing_files. - quilt-setup-06-check-for-directories-too.patch: Check for existing directories before unpacking. OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/quilt?expand=0&rev=63
66 lines
1.4 KiB
Diff
66 lines
1.4 KiB
Diff
Check for existing directories before unpacking.
|
|
---
|
|
quilt/setup.in | 22 ++++++++++++++++++++++
|
|
test/setup.test | 7 ++++++-
|
|
2 files changed, 28 insertions(+), 1 deletion(-)
|
|
|
|
--- a/quilt/setup.in
|
|
+++ b/quilt/setup.in
|
|
@@ -22,6 +22,25 @@ then
|
|
fi
|
|
fi
|
|
|
|
+check_for_existing_directories() {
|
|
+ local tag dir last_dir arg status=0
|
|
+
|
|
+ while read tag dir arg
|
|
+ do
|
|
+ [ "$dir" != "." -a "$dir" != "$last_dir" ] || continue
|
|
+
|
|
+ if [ -e "$prefix$dir" ]
|
|
+ then
|
|
+ printf $"Directory %s exists\n" \
|
|
+ "$prefix$dir" >&2
|
|
+ status=1
|
|
+ fi
|
|
+ last_dir=$dir
|
|
+ done < $tmpfile
|
|
+
|
|
+ return $status
|
|
+}
|
|
+
|
|
check_for_existing_files() {
|
|
local tag dir last_dir arg status=0
|
|
|
|
@@ -196,6 +215,9 @@ case "$1" in
|
|
;;
|
|
esac
|
|
|
|
+# Make sure that unpacking will not overwrite anything
|
|
+check_for_existing_directories || exit 1
|
|
+
|
|
while read tag dir arg1 arg2
|
|
do
|
|
case "$tag" in
|
|
--- a/test/setup.test
|
|
+++ b/test/setup.test
|
|
@@ -64,12 +64,17 @@ $ quilt push -qa
|
|
$ cd ../..
|
|
$ rm -rf "dir"
|
|
|
|
-# Now test the case where the tarball contains a patches directory
|
|
+# Now test the cases where the directory already exists, or the tarball
|
|
+# contains a patches directory
|
|
$ cat > series_with_patches
|
|
< # Source: dir_with_patches.tar.gz
|
|
< # Patchdir: dir
|
|
< #
|
|
< foo.diff
|
|
+$ mkdir dir
|
|
+$ quilt setup series_with_patches
|
|
+> Directory dir exists
|
|
+$ rmdir dir
|
|
$ quilt setup series_with_patches
|
|
> Unpacking archive dir_with_patches.tar.gz
|
|
> Directory dir/patches exists
|