diff options
author | Koen Kooi <koen@openembedded.org> | 2008-04-16 07:53:10 +0000 |
---|---|---|
committer | Koen Kooi <koen@openembedded.org> | 2008-04-16 07:53:10 +0000 |
commit | 8606b882e2c3a1f3f902100cb24b635f66165d56 (patch) | |
tree | fd5b8dd9a2a7befe6a0ed98fefadcc41c2f153e8 | |
parent | d63f0339310179bf93540142c63186b143ec49c1 (diff) |
angstrom contrib: add sort.sh
-rwxr-xr-x | contrib/angstrom/sort.sh | 145 |
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) |