From 7c084120816f83b3bf3afd0fe046466f153ce08c Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Tue, 7 Dec 2010 12:20:55 +0100 Subject: [import_patches] added support for -pX option, and for non-standard kernel patches. --- stlinux_import_patches.sh | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/stlinux_import_patches.sh b/stlinux_import_patches.sh index 38afb14..9f9afdd 100755 --- a/stlinux_import_patches.sh +++ b/stlinux_import_patches.sh @@ -26,7 +26,13 @@ END_TO=${4:-} PATCHES_LIST=$STLINUX_FOLDER/.patches -grep -if =(grep "^%patch" $STLINUX_FOLDER/*.spec | sed 's/%\(patch.*\) .*/^\1:/') $STLINUX_FOLDER/*.spec | awk '{ print $2 }' > $PATCHES_LIST +:>$PATCHES_LIST +for patch in $(grep "^%patch" $STLINUX_FOLDER/*.spec | sed 's/%\(patch[0-9]\+\).*/\1/') +do + echo $patch | sed 's/patch\([0-9]\+\)/\1/' | awk '{ printf $1" " }' >> $PATCHES_LIST + grep -i "^%$patch" $STLINUX_FOLDER/*.spec | awk '{ printf $2" " }' >> $PATCHES_LIST + grep -i "^$patch:" $STLINUX_FOLDER/*.spec | awk '{ print $2 }' >> $PATCHES_LIST +done #cat $PATCHES_LIST @@ -47,12 +53,13 @@ function read_patch_file() } export RELEASE="" -for file in $(cat $PATCHES_LIST ) +for patch in $(awk < $PATCHES_LIST '{print $1}' ) do - i=$(grep "^Patch.*:[[:blank:]]\+$file$" $STLINUX_FOLDER/*.spec | sed 's/^Patch\(.*\): .*$/\1/') + file=$(grep "^$patch " $PATCHES_LIST | awk '{print $3}') + strip=$(grep "^$patch " $PATCHES_LIST | awk '{print $2}') - if [ $i -ge $START_FROM -a \( -z "$END_TO" -o $i -le "$END_TO" \) ] + if [ $patch -ge $START_FROM -a \( -z "$END_TO" -o $patch -le "$END_TO" \) ] then if [ ! -e $STLINUX_FOLDER/$file -a -e $STLINUX_FOLDER/$file:r ] @@ -86,7 +93,7 @@ do fi # Voici la première ligne du message de commit. C'est la plus jolie. - echo "[Patch #$i] ${RELEASE}Applied $file" + echo "[Patch #$patch] ${RELEASE}Applied $file" # # On récupère le commentaire dans le patch en guise de message de commit @@ -103,7 +110,7 @@ do # On affiche le résultat de l'application du patch dans le message de commit # echo "---" >> .git/message - read_patch_file $STLINUX_FOLDER/$file | patch -Np1 >> .git/message + read_patch_file $STLINUX_FOLDER/$file | patch -N $strip >> .git/message # Suppression des fichiers supprimés par le patch git-rm $(git-ls-files --deleted) 2>/dev/null # Ajout de tout le reste :-) @@ -112,8 +119,8 @@ do git-commit -F .git/message else - echo >&2 "Skipping patch #$i : $file" - + echo >&2 "Skipping patch #$patch : $file" + fi done git-tag "$TAG_PREFIX$((RELEASE + 1))" -- cgit v1.2.3