summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2008-04-16 07:53:10 +0000
committerKoen Kooi <koen@openembedded.org>2008-04-16 07:53:10 +0000
commit8606b882e2c3a1f3f902100cb24b635f66165d56 (patch)
treefd5b8dd9a2a7befe6a0ed98fefadcc41c2f153e8
parentd63f0339310179bf93540142c63186b143ec49c1 (diff)
angstrom contrib: add sort.sh
-rwxr-xr-xcontrib/angstrom/sort.sh145
1 files changed, 145 insertions, 0 deletions
diff --git a/contrib/angstrom/sort.sh b/contrib/angstrom/sort.sh
new file mode 100755
index 0000000000..8923136443
--- /dev/null
+++ b/contrib/angstrom/sort.sh
@@ -0,0 +1,145 @@
+#!/bin/bash
+
+# Angstrom feed sorting script
+# This must be run in unstable/ directory
+
+rm Packages* >& /dev/null
+
+# Find ipkg files in unsorted/ and remove stale ones
+echo "Deleting morgue directories "
+find . -name morgue | xargs rm -rf
+echo "Moving packages to the top level directory"
+find */ -name "*.ipk" -exec mv '{}' ./ \;
+
+# Make a list of ipkg files already present in feeds and in unsorted
+echo "Making a list of unsorted packages"
+for i in $(find . -name "*.ipk") ; do basename $i ; done > files-unsorted
+if [ "$1" != "--skip-sorted-list" ]; then
+ echo "Making a list of sorted packages (takes long)"
+ for i in $(find ../ -name "*.ipk"| grep -v unsorted) ; do basename $i ; done > files-sorted
+fi
+
+# Make a list of duplicates and delete those
+echo "Finding duplicate packages in unsorted"
+cat files-sorted files-unsorted | sort | uniq -d > files-duplicate
+echo "Removing duplicate packages in unsorted"
+cat files-duplicate | xargs rm -f
+
+# Log remaining packages to a file
+find . -name "*.ipk" |grep -v dbg | grep -v -- -dev | grep -v -- -doc | grep -v angstrom-version | grep -v locale > new-files.txt
+for newfile in $(cat new-files.txt | sed s:./::g) ; do
+ echo "$(date -u +%s) $newfile $(basename ${PWD})" >> ../upload.txt
+done
+
+do_sort() {
+archdir=$arch
+
+case "$arch" in
+ "arm-oabi")
+ machines="h3600 h3800 collie simpad htcwallaby" ;;
+ "armv4t")
+ machines="ep93xx h6300 om-gta01 om-gta02 fic-gta01 fic-gta02" ;;
+ "armv5te")
+ machines="davinci-dvevm gumstix-connex gumstix-verdex gumstix e680 a780 a1200 at91sam9263ek rokre6 rokre2 rokr-e2 akita c7x0 h2200 h3900 h4000 h5000 htcapache htctornado htcblueangel htcuniversal hx4700 nslu2le hx2000 ixp4xxle magician netbook-pro nokia770 palmld palmtx palmtt3 palmz72 qemuarm omap5912osk poodle spitz tosa" ;;
+ "armv5teb")
+ machines="ixp4xxbe nslu2be" ;;
+ "armv6")
+ machines="mx31ads nokia800 davinci-sffsdr" ;;
+ "armv7")
+ machines="" ;;
+ "armv7a")
+ machines="beagleboard" ;;
+ "avr32")
+ machines="atngw100 at32stk1000" ;;
+ "bfin")
+ archdir="blackfin"
+ machines="adsp-bf537-stamp" ;;
+ "geode")
+ machines="alix" ;;
+ "i486")
+ machines="x86" ;;
+ "i586")
+ machines="epia qemux86" ;;
+ "i686")
+ machines="guinness progear" ;;
+ "iwmmxt")
+ machines="" ;;
+ "ppc405")
+ machines="dht-walnut" ;;
+ "ppc603e")
+ machines="efika" ;;
+ "sparc")
+ machines="" ;;
+esac
+
+echo "Sorting $arch"
+for i in `find . -name "*.ipk"| grep $arch` ; do mkdir -p ../$archdir/base/ || true ;mv $i ../$archdir/base/ ; done
+ for machine in $machines ; do
+ for i in `find . -name "*_$machine.ipk"| grep $machine` ; do mkdir -p ../$archdir/machine/$machine || true ;mv $i ../$archdir/machine/$machine ; done
+ done
+(cd ../$archdir && do_index )
+
+}
+
+do_index() {
+ipkg_tools_path="/usr/local/bin"
+echo "Processing $(basename $PWD) packages...."
+
+BPWD=`pwd`
+
+cd base
+
+mkdir -p ../debug ../perl ../python ../gstreamer ../locales/en || true
+
+#split the feeds based on names
+mv python* ../python/ >& /dev/null
+mv perl* ../perl/ >& /dev/null
+mv *-dbg* ../debug/ >& /dev/null
+mv gst* ../gstreamer >& /dev/null
+
+for i in ../* ; do
+ if [ -d $i ]; then
+ cd $i
+ echo -n "building index for $i:" |sed s:\.\./::
+ ${ipkg_tools_path}/ipkg-make-index -p Packages -l Packages.filelist -m -L ../locales . >& /dev/null
+ echo " DONE"
+ fi
+done
+cd ${BPWD}/machine
+
+for i in ./* ; do
+ if [ -d $i ]; then
+ cd $i
+ echo -n "building index for machine $i:"
+ ${ipkg_tools_path}/ipkg-make-index -p Packages -l Packages.filelist -m . >& /dev/null
+ echo " DONE"
+ cd ../
+ fi
+done
+
+cd ${BPWD}/locales/en/
+echo -n "building index for locales:"
+for i in ../* ; do
+ if [ -d $i ]; then
+ echo -n " $i" |sed s:\.\./::
+ ${ipkg_tools_path}/ipkg-make-index -p Packages -l Packages.filelist -m . >& /dev/null;
+ cd $i
+ fi
+ done
+echo " DONE"
+cd ${BPWD}
+
+echo -n "Stripping source lines from Package files"
+for i in `find . -name Packages` ; do grep -v ^Source: $i|gzip -c9>$i.gz ;gunzip -c $i.gz>$i ; done
+echo " DONE"
+}
+
+echo "Processing 'all' feed"
+for i in `find . -name "*.ipk"| grep _all` ; do mkdir -p ../all/ || true ;mv $i ../all/ ; done
+ (cd ../all && ipkg-make-index -p Packages -m . >& /dev/null)
+
+for arch in arm-oabi armv4t armv5teb armv5te armv6 armv7a armv7 avr32 bfin geode i486 i586 i686 iwmmxt ppc405 ppc603e sparc ; do
+ do_sort
+done
+
+(cd ~/website/repo ; php update.php)