common/hooks: new post-extract hook: apply-patches (moved from xbps-src).
This commit is contained in:
parent
e4d8a54465
commit
5e11d6c2ff
1 changed files with 59 additions and 0 deletions
59
common/hooks/post-extract/apply-patches.sh
Normal file
59
common/hooks/post-extract/apply-patches.sh
Normal 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
|
||||
}
|
Loading…
Reference in a new issue