toolchain/patch-kernel.sh: xtensa directory overlay support
authorMaxim Grigoriev <maxim2405@gmail.com>
Fri, 24 Jul 2009 00:31:34 +0000 (02:31 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Fri, 24 Jul 2009 00:31:34 +0000 (02:31 +0200)
Part of #163.

Signed-off-by: Maxim Grigoriev <maxim2405@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
toolchain/patch-kernel.sh

index e2e89486d3781e25f2dc4bc1849eb382981be071..76cb9f75331193098dddd54521fd0265a65595b9 100755 (executable)
@@ -21,7 +21,14 @@ if [ ! -d "${patchdir}" ] ; then
 fi
     
 for i in `cd ${patchdir}; ls -d ${patchpattern} 2> /dev/null` ; do 
-    case "$i" in
+    apply="patch -p1 -E -d"
+    uncomp_parm=""
+    if [ -d "${patchdir}/$i" ] ; then
+       type="directory overlay"
+       uncomp="tar cf - --exclude=.svn --no-anchored -C"
+       uncomp_parm="."
+       apply="tar xvf - -C"
+    else case "$i" in
        *.gz)
        type="gzip"; uncomp="gunzip -dc"; ;; 
        *.bz)
@@ -32,13 +39,17 @@ for i in `cd ${patchdir}; ls -d ${patchpattern} 2> /dev/null` ; do
        type="zip"; uncomp="unzip -d"; ;; 
        *.Z)
        type="compress"; uncomp="uncompress -c"; ;; 
+       *.tgz)
+       type="tar gzip"; uncomp="gunzip -dc"; apply="tar xvf - -C"; ;; 
+       *.tar)
+       type="tar"; uncomp="cat"; apply="tar xvf - -C"; ;; 
        *)
        type="plaintext"; uncomp="cat"; ;; 
-    esac
+    esac fi
     echo ""
     echo "Applying ${i} using ${type}: " 
        echo ${i} | cat >> ${targetdir}/.applied_patches_list
-    ${uncomp} ${patchdir}/${i} | patch -p1 -E -d ${targetdir} 
+    ${uncomp} ${patchdir}/${i} ${uncomp_parm} | ${apply} ${targetdir} 
     if [ $? != 0 ] ; then
         echo "Patch failed!  Please fix $i!"
        exit 1