+#
+# Splits packages into feeds, depending on the "Section" entry in "Packages"
+#
+
+
+die () {
+ echo "split_feed: ERROR: $1"
+ exit 1
+}
+
+do_split_feed () {
+ test -z "$FEED_PATTERN" && die "No feed pattern in FEED_PATTERN"
+ test -z "$FEED_NAME" && die "No feed name in FEED_NAME"
+ ! test -e ${DEPLOY_DIR_IPK}/Packages && die "[$DEPLOY_DIR_IPK/Packages] not found"
+
+ echo "Working on pattern [$FEED_PATTERN] for feed [$FEED_NAME]"
+
+ # Don't we all love sed?
+ cat "${DEPLOY_DIR_IPK}/Packages" |sed -n "/^Section/s/Section\:\ //p;/^Package/s/Package\:\ //p" |sed '$!N;s/\n/ /;s/\(.*\)\ \(.*\)/\2 \1/'| sort | egrep -i "$FEED_PATTERN" | sed -n "s/\(.*\)\ \(.*\)/\2/p" > feed-content.tmp
+
+ if ! test -z "$EXCLUDE_FROM_FEED"
+ then
+ cat feed-content.tmp | egrep -iv "$EXCLUDE_FROM_FEED" > feed-content.tmp2
+ rm feed-content.tmp
+ mv feed-content.tmp2 feed-content.tmp
+ fi
+
+ if ! test -d ${DEPLOY_DIR_IPK}/${FEED_NAME}
+ then
+ mkdir ${DEPLOY_DIR_IPK}/${FEED_NAME}
+ else
+ test "${DEPLOY_DIR_IPK}/${FEED_NAME}" = "/" && die "EMERGENCY BAIL-OUT"
+ rm -rf ${DEPLOY_DIR_IPK}/${FEED_NAME}
+ mkdir ${DEPLOY_DIR_IPK}/${FEED_NAME}
+ fi
+
+ for package in `cat feed-content.tmp`
+ do
+ cp ${DEPLOY_DIR_IPK}/${package}_*.ipk ${DEPLOY_DIR_IPK}/${FEED_NAME}
+ done
+
+ touch ${DEPLOY_DIR_IPK}/${FEED_NAME}/Packages
+ ipkg-make-index -r ${DEPLOY_DIR_IPK}/${FEED_NAME}/Packages -p ${DEPLOY_DIR_IPK}/${FEED_NAME}/Packages -l ${DEPLOY_DIR_IPK}/${FEED_NAME}/Packages.filelist -m ${DEPLOY_DIR_IPK}/${FEED_NAME}
+
+ test -d ${DEPLOY_DIR_IPK}/${FEED_NAME}/morgue && rm -rf ${DEPLOY_DIR_IPK}/${FEED_NAME}/morgue
+}
+
+addtask split_feed before do_build
+
+
+# A dependency isn't really needed. Just build meta-? or even world
+# and build the feed afterwards.
+
+#DEPENDS = "meta-opie"
+
+# egrep -i Pattern matched against "$Section $Package-Name"
+export FEED_PATTERN = "\ locale-|glibc-"
+export FEED_NAME = "openzaurus-system"
+
+# egrep -i regexp matching package name
+export EXCLUDE_FROM_FEED = ""
+
+inherit split_ipk_feeds
+
+