Add support for the user patch applying function.
---
 bin/eapi.sh          |  4 ++++
 bin/phase-helpers.sh | 22 ++++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git a/bin/eapi.sh b/bin/eapi.sh
index 8ffffbb..6e78750 100644
--- a/bin/eapi.sh
+++ b/bin/eapi.sh
@@ -76,6 +76,10 @@ ___eapi_has_eapply() {
        [[ ! ${1-${EAPI}} =~ 
^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]]
 }
 
+___eapi_has_eapply_user() {
+       [[ ! ${1-${EAPI}} =~ 
^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]]
+}
+
 ___eapi_has_master_repositories() {
        [[ ${1-${EAPI}} =~ ^(5-progress)$ ]]
 }
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index 6bd8a12..49b5547 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -927,6 +927,28 @@ if ___eapi_has_eapply; then
        }
 fi
 
+if ___eapi_has_eapply_user; then
+       eapply_user() {
+               local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches
+
+               local d applied
+               # possibilities:
+               # 1. ${CATEGORY}/${P}-${PR} (note: -r0 desired to avoid applying
+               #    ${P} twice)
+               # 2. ${CATEGORY}/${P}
+               # 3. ${CATEGORY}/${PN}
+               # all of the above may be optionally followed by a slot
+               for d in 
"${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT%/*}}; do
+                       if [[ -d ${d} ]]; then
+                               [[ -z ${applied} ]] && einfo "Applying user 
patches ..."
+                               eapply "${d}"
+                       fi
+               done
+
+               [[ -n ${applied} ]] && einfo "User patches applied."
+       }
+fi
+
 if ___eapi_has_master_repositories; then
        master_repositories() {
                local output repository=$1 retval
-- 
2.0.4


Reply via email to