common/hooks: new post-extract hook: apply-patches (moved from xbps-src).

This commit is contained in:
Juan RP 2014-02-12 18:38:32 +01:00
parent e4d8a54465
commit 5e11d6c2ff

View file

@ -0,0 +1,59 @@
# This hook applies patches from "patches" directory.
_process_patch() {
local _args= _patch= i=$1
_args="-Np0"
_patch=$(basename $i)
if [ -f $PATCHESDIR/${_patch}.args ]; then
_args=$(cat $PATCHESDIR/${_patch}.args)
elif [ -n "$patch_args" ]; then
_args=$patch_args
fi
cp -f $i $wrksrc
# Try to guess if its a compressed patch.
if $(echo $i|grep -q '.diff.gz'); then
gunzip $wrksrc/${_patch}
_patch=${_patch%%.gz}
elif $(echo $i|grep -q '.patch.gz'); then
gunzip $wrksrc/${_patch}
_patch=${_patch%%.gz}
elif $(echo $i|grep -q '.diff.bz2'); then
bunzip2 $wrksrc/${_patch}
_patch=${_patch%%.bz2}
elif $(echo $i|grep -q '.patch.bz2'); then
bunzip2 $wrksrc/${_patch}
_patch=${_patch%%.bz2}
elif $(echo $i|grep -q '.diff'); then
:
elif $(echo $i|grep -q '.patch'); then
:
else
msg_warn "$pkgver: unknown patch type: $i.\n"
continue
fi
cd $wrksrc
patch -sl ${_args} -i ${_patch} 2>/dev/null
msg_normal "$pkgver: patch applied: ${_patch}.\n"
}
hook() {
if [ ! -d "$wrksrc" ]; then
return 0
fi
if [ -r $PATCHESDIR/series ]; then
cat $PATCHESDIR/series | while read f; do
_process_patch "$PATCHESDIR/$f"
done
else
for f in $PATCHESDIR/*; do
[ ! -f $f ] && continue
if $(echo $f|grep -Eq '^.*.args$'); then
continue
fi
_process_patch $f
done
fi
}