summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Solano Gómez <gentoo@sattvik.com>2013-04-05 22:17:28 -0500
committerDaniel Solano Gómez <gentoo@sattvik.com>2013-04-05 22:17:28 -0500
commit4abcdea0b741cb72d6aac90d076d6244e5d786b8 (patch)
tree52f5eef3734b3be6272c67f2bf7eaddf4f191d9d /profiles
parentMore tests. (diff)
downloadsattvik-4abcdea0b741cb72d6aac90d076d6244e5d786b8.tar.gz
sattvik-4abcdea0b741cb72d6aac90d076d6244e5d786b8.tar.bz2
sattvik-4abcdea0b741cb72d6aac90d076d6244e5d786b8.zip
Add initial full implementation of Sttvik patches functionality
Diffstat (limited to 'profiles')
-rwxr-xr-xprofiles/sattvik/linux/amd64/13.0/profile.bashrc55
1 files changed, 52 insertions, 3 deletions
diff --git a/profiles/sattvik/linux/amd64/13.0/profile.bashrc b/profiles/sattvik/linux/amd64/13.0/profile.bashrc
index 4a3124b..1ee9879 100755
--- a/profiles/sattvik/linux/amd64/13.0/profile.bashrc
+++ b/profiles/sattvik/linux/amd64/13.0/profile.bashrc
@@ -1,7 +1,56 @@
#!/bin/bash
+SATTVIK_LEVEL_VERBOSE=1
+SATTVIK_LEVEL_DEBUG=2
+
+SATTVIK_LOG_LEVEL=${SATTVIK_LOG_LEVEL:-2}
+
post_src_unpack() {
- local patches_overlay_dir patches patch locksuffix
- echo "cwd: $cwd"
- echo "0: $0"
+ local -a patches_dirs
+ for profile_path in $PROFILE_PATHS; do
+ local patches_dir="$profile_path/sattvik_patches"
+ if [ -d "$patches_dir" ]; then
+ patches_dirs+=("$patches_dir")
+ if [ $SATTVIK_LOG_LEVEL > $SATTVIK_LEVEL_VERBOSE]; then
+ einfo "Found patches dir: ${patches_dir}"
+ fi
+ elif [ $SATTVIK_LOG_LEVEL > $SATTVIK_LEVEL_DEBUG ]; then
+ einfo "No patches dir found for profile at ${profile_path}"
+ fi
+ done
+
+ local idx
+ local -a rev_patches_dirs
+ for (( idx=${#patches_dirs[@]}-1 ; idx>=0 ; idx-- )); do
+ rev_patches+=("${patches_dirs[idx]}")
+ done
+
+ if [ $SATTVIK_LOG_LEVEL > $SATTVIK_LEVEL_DEBUG ]; then
+ einfo "Patches dirs are ${rev_patches_dirs[*]}"
+ fi
+
+ local applied="${T}/sattvik_patch.log"
+ [[ -e ${applied} ]] && return 2
+
+ local patches_dir
+ for patches_dir in "${rev_patches_dirs[@]}"; do
+ local EPATCH_SOURCE check
+ for check in ${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT}}; do
+ EPATCH_SOURCE=${patches_dir}/${CTARGET}/${check}
+ [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${patches_dir}/${CHOST}/${check}
+ [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${patches_dir}/${check}
+ if [[ -d ${EPATCH_SOURCE} ]] ; then
+ EPATCH_SOURCE=${EPATCH_SOURCE} \
+ EPATCH_SUFFIX="patch" \
+ EPATCH_FORCE="yes" \
+ EPATCH_MULTI_MSG="Applying Sattvik profile patches from ${EPATCH_SOURCE} ..." \
+ epatch
+ echo "${EPATCH_SOURCE}" > "${applied}"
+ return 0
+ fi
+ done
+ done
+
+ echo "none" > "${applied}"
+ return 1
}