summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugues Hiegel <hugues@hiegel.fr>2010-12-07 12:20:55 +0100
committerHugues Hiegel <hugues@hiegel.fr>2010-12-07 12:20:55 +0100
commit7c084120816f83b3bf3afd0fe046466f153ce08c (patch)
tree636b6037e23ba7aa1f708f6fe1344f79f5332397
parent382aedeba3ecd2924c790166e2b65d4e249f83f5 (diff)
[import_patches] added support for -pX option, and for non-standard kernel patches.
-rwxr-xr-xstlinux_import_patches.sh23
1 files 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))"