diff options
author | Ludovic Desroches <ludovic.desroches@atmel.com> | 2012-03-21 14:26:27 +0100 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2012-03-21 13:47:27 +0100 |
commit | 64ac7199525f3dbd0ce49f7ec31715a2a1b63725 (patch) | |
tree | 8d654fb846ff291e276025b92a7f3a60f6c60668 | |
parent | c9ccdf877a6a5af54ac8b6d2809361ed1ddcc221 (diff) |
apply-patches.sh: add recursivity when scanning patchdir
Recursivity is needed with some tarballs containing debian patches:
.
debian
changelog
control
patches
02-COPYRIGHT.patch
[...]
Since we can find some files which are not patches in those directories, only
consider .patch* and .diff* files as valid patches.
Due to recursivity, strip-components option is no more necessary so it has
been removed.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rwxr-xr-x | support/scripts/apply-patches.sh | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh index 968e2a406..e4b98bc05 100755 --- a/support/scripts/apply-patches.sh +++ b/support/scripts/apply-patches.sh @@ -40,8 +40,14 @@ function apply_patch { type="zip"; uncomp="unzip -d"; ;; *.Z) type="compress"; uncomp="uncompress -c"; ;; + *.diff*) + type="diff"; uncomp="cat"; ;; + *.patch*) + type="patch"; uncomp="cat"; ;; *) - type="plaintext"; uncomp="cat"; ;; + echo "Unsupported format file for ${patch}, skip it"; + return 0; + ;; esac echo "" echo "Applying $patch using ${type}: " @@ -67,12 +73,12 @@ function scan_patchdir { else for i in `cd $path; ls -d $patches 2> /dev/null` ; do if [ -d "${path}/$i" ] ; then - echo "${path}/$i skipped" + scan_patchdir "${path}/$i" elif echo "$i" | grep -q -E "\.tar(\..*)?$|\.tbz2?$|\.tgz$" ; then unpackedarchivedir="$builddir/.patches-$(basename $i)-unpacked" rm -rf "$unpackedarchivedir" 2> /dev/null mkdir "$unpackedarchivedir" - tar -C "$unpackedarchivedir" --strip-components=1 -xaf "${path}/$i" + tar -C "$unpackedarchivedir" -xaf "${path}/$i" scan_patchdir "$unpackedarchivedir" else apply_patch "$path" "$i" || exit 1 |