From 382aedeba3ecd2924c790166e2b65d4e249f83f5 Mon Sep 17 00:00:00 2001 From: Hugues Hiegel Date: Fri, 6 Feb 2009 14:59:12 +0100 Subject: scripts moved back to parent dir --- STLinux/stlinux_import_patches.sh | 119 -------------------------------------- 1 file changed, 119 deletions(-) delete mode 100755 STLinux/stlinux_import_patches.sh (limited to 'STLinux/stlinux_import_patches.sh') diff --git a/STLinux/stlinux_import_patches.sh b/STLinux/stlinux_import_patches.sh deleted file mode 100755 index 38afb14..0000000 --- a/STLinux/stlinux_import_patches.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/zsh - -usage() -{ - cat << EOF -usage: $0:t [Patch # start] [Patch # end] -EOF -} - -if ! git-rev-parse --git-dir >/dev/null -then - echo "This is not a GIT repository !" - usage - exit 27 # I like 27. -fi -if [ $# -lt 2 ] -then - usage - exit 42 # 42 ? Because ! -fi - -STLINUX_FOLDER=$1 -TAG_PREFIX=$2 -START_FROM=${3:-0} -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 - -#cat $PATCHES_LIST - -function read_patch_file() -{ - case $1:e in - "patch") - < $1 - ;; - "bz2") - bunzip2 -c $1 - ;; - "*") - echo >&2 "Error ! $1:e is not a recognized patch extension !" - exit; - ;; - esac -} - -export RELEASE="" -for file in $(cat $PATCHES_LIST ) -do - - i=$(grep "^Patch.*:[[:blank:]]\+$file$" $STLINUX_FOLDER/*.spec | sed 's/^Patch\(.*\): .*$/\1/') - - if [ $i -ge $START_FROM -a \( -z "$END_TO" -o $i -le "$END_TO" \) ] - then - - if [ ! -e $STLINUX_FOLDER/$file -a -e $STLINUX_FOLDER/$file:r ] - then - file=$file:r - fi - - ( - # - # On extrait le numéro de release ST dans le nom du fichier .patch - # - _RELEASE="$(echo $file | sed 's/linux-.*[-_]stm\(.\)\(.\)[-_]\([0-9]*\)[_-\.].*/\3/')" - - # Ça a marché ? Alors on vérifie qu'on n'est pas passé à la release suivante... - if [ "$_RELEASE" != "$file" ] - then - # On épure le numéro de révision - _RELEASE=$(( $_RELEASE )) - if [ "$(( $_RELEASE ))" -gt "$(( $RELEASE ))" ] - then - # Ha ! On est passé à une release "supérieure", alors on pose le tag - git-tag "$TAG_PREFIX${_RELEASE}" - # Et on stocke le résultat pour le récupérer dans le bloc parent - echo $_RELEASE > .git/release - fi - - # On crée le tag pour le message de commit - RELEASE="[$_RELEASE] " - else - RELEASE="" - fi - - # Voici la première ligne du message de commit. C'est la plus jolie. - echo "[Patch #$i] ${RELEASE}Applied $file" - - # - # On récupère le commentaire dans le patch en guise de message de commit - # avec gestion des .patch ou des .patch.bz2 - # - read_patch_file $STLINUX_FOLDER/$file | awk '{ RS="--- "; } { if ( NR <= 2 ) { print $0 } }' | \ - grep -v -e "^diff \-" -e "^Index: " -e "^=*$" -e "^Signed-off-by: " -e "^index "; - - ) | sed 's/ //' > .git/message ; - - # On récupère la release trouvée dans le bloc précédent - RELEASE=$([ -s .git/release ] && ( cat .git/release ; rm -f .git/release) ) - # - # 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 - # Suppression des fichiers supprimés par le patch - git-rm $(git-ls-files --deleted) 2>/dev/null - # Ajout de tout le reste :-) - git-add . - # Et on committe !! - git-commit -F .git/message - else - - echo >&2 "Skipping patch #$i : $file" - - fi -done -git-tag "$TAG_PREFIX$((RELEASE + 1))" -- cgit v1.2.3