merge of '4c917e13bc231f8325cbb2478d7907d3ccc3f75b'
[vuplus_openembedded] / contrib / angstrom / sort.sh
1 #!/bin/bash
2
3 # Angstrom feed sorting script
4 # This must be run in unstable/ directory 
5
6 rm Packages* >& /dev/null
7
8 # Find ipkg files in unsorted/ and remove stale ones
9 echo "Deleting morgue directories "
10 find . -name morgue | xargs rm -rf 
11 echo "Moving packages to the top level directory"
12 find */ -name  "*.ipk" -exec mv  '{}'  ./ \;
13
14 # Make a list of ipkg files already present in feeds and in unsorted
15 echo "Making a list of unsorted packages"
16 for i in $(find . -name "*.ipk") ; do basename $i ; done > files-unsorted
17 if [ "$1" != "--skip-sorted-list" ]; then
18     echo "Making a list of sorted packages (takes long)"
19     for i in $(find ../ -name "*.ipk"| grep -v unsorted) ; do basename $i ; done > files-sorted
20 fi
21
22 # Make a list of duplicates and delete those
23 echo "Finding duplicate packages in unsorted"
24 cat files-sorted files-unsorted | sort | uniq -d > files-duplicate
25 echo "Removing duplicate packages in unsorted"
26 cat files-duplicate | xargs rm -f
27
28 # Log remaining packages to a file 
29 find . -name "*.ipk" |grep -v dbg | grep -v -- -dev | grep -v -- -doc | grep -v angstrom-version | grep -v locale > new-files.txt
30 for newfile in $(cat new-files.txt | sed s:./::g) ; do
31     echo "$(date -u +%s) $newfile $(basename ${PWD})" >> ../upload.txt
32 done    
33
34 do_sort() {
35 archdir=$arch
36
37 case "$arch" in
38         "arm-oabi")
39                         machines="h3600 h3800 collie simpad htcwallaby" ;;
40         "armv4t")
41                         machines="ep93xx h6300 om-gta01 om-gta02 fic-gta01 fic-gta02" ;;
42         "armv5te")
43                         machines="davinci-dvevm davinci-sffsdr neuros-osd neuros-osd2 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" ;;
44         "armv5teb")
45                         machines="ixp4xxbe nslu2be" ;;
46         "armv6")        
47                         machines="mx31ads nokia800 " ;;
48         "armv7")
49                         machines="" ;;
50         "armv7a")
51                         machines="beagleboard omap3evm " ;;
52         "avr32")
53                         machines="atngw100 at32stk1000" ;;
54         "bfin")
55                         archdir="blackfin"
56                         machines="adsp-bf537-stamp" ;;
57         "geode")
58                         machines="alix" ;;
59         "i486")
60                         machines="x86" ;;
61         "i586")
62                         machines="epia qemux86" ;;
63         "i686")
64                         machines="guinness progear" ;;
65         "iwmmxt")
66                         machines="" ;;
67         "ppc405")       
68                         machines="dht-walnut" ;;
69         "ppc603e")
70                         machines="efika" ;;
71         "sparc")
72                         machines="" ;;
73 esac
74
75 echo "Sorting $arch"
76 for i in `find . -name  "*.ipk"| grep $arch` ; do mkdir -p ../$archdir/base/ || true ;mv $i ../$archdir/base/ ; done
77         for machine in $machines ; do
78                 for i in `find . -name  "*_$machine.ipk"| grep $machine` ; do mkdir -p ../$archdir/machine/$machine || true ;mv $i ../$archdir/machine/$machine ; done
79         done
80 (cd ../$archdir && do_index )
81
82 }
83
84 do_index() {
85 ipkg_tools_path="/home/angstrom/bin"
86 echo "Processing $(basename $PWD) packages...."
87
88 BPWD=`pwd`
89
90 cd base
91
92 mkdir -p ../debug ../perl ../python ../gstreamer ../locales/en || true
93
94 #split the feeds based on names
95 mv python* ../python/ >& /dev/null
96 mv perl* ../perl/ >& /dev/null
97 mv *-dbg* ../debug/ >& /dev/null
98 mv gst* ../gstreamer >& /dev/null
99
100 for i in ../* ; do
101   if [ -d $i ]; then
102       cd $i
103       echo -n "building index for $i:" |sed s:\.\./::
104       ${ipkg_tools_path}/ipkg-make-index -p Packages -l Packages.filelist  -m -L ../locales  . >& /tmp/index-log
105       echo " DONE"
106   fi
107 done
108 cd ${BPWD}/machine
109
110 for i in ./* ; do
111   if [ -d $i ]; then
112      cd $i
113      echo -n "building index for machine $i:"
114      ${ipkg_tools_path}/ipkg-make-index -p Packages -l Packages.filelist  -m  . >& /dev/null
115      echo " DONE"
116      cd ../
117   fi
118 done
119
120 cd ${BPWD}/locales/en/
121 echo -n "building index for locales:"
122 for i in ../* ; do
123   if [ -d $i ]; then
124    echo -n " $i" |sed s:\.\./::
125    ${ipkg_tools_path}/ipkg-make-index -p Packages -l Packages.filelist  -m . >& /dev/null;
126    cd $i
127   fi
128  done
129 echo " DONE"
130 cd ${BPWD}
131
132 echo -n "Stripping source lines from Package files"
133 for i in `find . -name Packages` ; do grep -v ^Source: $i|gzip -c9>$i.gz ;gunzip -c $i.gz>$i ; touch $i.sig ; done
134 echo " DONE"
135 }
136
137 echo "Processing 'all' feed"
138 for i in `find . -name  "*.ipk"| grep _all` ; do mkdir -p ../all/ || true ;mv $i ../all/ ; done
139  (cd ../all && ipkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )  
140
141 for arch in arm-oabi armv4t armv5teb armv5te armv6 armv7a armv7 avr32 bfin geode i486 i586 i686 iwmmxt ppc405 ppc603e sparc ; do 
142         do_sort
143 done
144
145 (cd ~/website/repo ; php update.php)