====== DIFF - PATCH - Autopatch Sourcefiles ======
PF = Patchfiles
Es handelt sich hier um ein Script, welches bei Debian/GNU auf dessen //PF// angewendet werden kann. Die //PF// müssen die Endung .diff haben. Das Script macht keine Fehlerbehandlung.
#! /bin/bash
SRC=$1
DST=$2
_datei=`find $SRC -type f`
_dir=`find $SRC -type d`
CNT=${#SRC}
PATCHES=0
function cut_dir ()
{
H=$1
CNT_H=${#H}
DIR=${H:$CNT:$CNT_H}
}
function cut_file()
{
cut_dir $1
FILE=$DIR
CNT_H=${#FILE}
SFX=${FILE:$CNT_H-5:5}
FILE=${FILE:0:$CNT_H-5}
}
for DIR in $_dir ; do
cut_dir $DIR
if [ ! -d $DST$DIR ] ; then
echo create dst-directory structure: $DST$DIR
mkdir -p $DST$DIR
fi
done
echo beginn patch files
for FILE in $_datei ; do
cut_file $FILE
patch $DST$FILE < $FILE$SFX
let PATCHES=$PATCHES+1
done
echo $PATCHES files patched
exit 0
Beispiel:
#patcher /path/to/diffdir /path/to/destdir
====== DIFF erstellen ======
Will man selber einen DIFF erstellen, so nutzt man das Programm **diff**
#diff -uN alte_datei neue_datei > /path/to/diff_datei.diff
Man erhält eine Datei, mit den nötigen Informationen
====== PATCH - anwenden ======
Um ein DIFF auf eine Datei anzuwenden ... einfach das Programm patch installieren.
#patch /path/to/alte_datei < /path/to/neue_datei.diff
Nach diesem Aufruf erthält die **/path/to/alte_datei** alle Änderungen.
====== TAGS ======
* Diff
* Difffiles
* Patch
* Linux
* automatich patchen
* alle Dateien patchen
* Sourcefiles patchen
* patch script