Magellan Linux

Annotation of /trunk/pkgtools/get_missing_packages.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 610 - (hide annotations) (download) (as text)
Sun Nov 11 23:40:52 2007 UTC (16 years, 6 months ago) by niro
File MIME type: application/x-sh
File size: 2652 byte(s)
-added some pkgtools

1 niro 610 #!/bin/bash
2    
3     # default die function
4     die()
5     {
6     echo -e ${COLRED}"$@"${COLDEFAULT}
7     exit 1
8     }
9    
10    
11     # mage cvs location
12     CVS_DEST=$(mktemp -d)
13     CVS_MODULE=magellan-src/mage
14     CVS_OPTS=""
15     CVS_ROOT=":pserver:anonymous:@127.0.0.1:/magellan-cvs"
16    
17     # repo location
18     MPK_REPO=/var/www/magellan/magellan-dev
19    
20     # mage-db location
21     MAGE_REPO=/var/www/magellan/magellan-dev/rsync/mage
22    
23     # supported arches
24     ARCHES="i686 x86_64"
25    
26     # supported distribuions
27     DISTRIBUTIONS="stable testing unstable"
28    
29     # search dist
30     DISTRIBUTION="$1" # stable/testing/unstable
31     [[ -z ${DISTRIBUTION} ]] && die "You must tell me a distribution!"
32    
33     # used mage profile
34     MAGE_PROFILE="mage070"
35    
36     MISSING_PKGS=""
37     DIST_MISSING=""
38    
39     echo "Running QA lint checks ..."
40     echo
41    
42     # get cvs
43     echo "Getting newest mage version ..."
44     cd ${CVS_DEST}
45     cvs -Q -d ${CVS_ROOT} login
46     cvs -Q -z3 -d ${CVS_ROOT} co ${CVS_MODULE}
47    
48     # setup mage profile
49     ln -snf ${MAGE_REPO}/profiles/${MAGE_PROFILE} /etc/mage-profile
50    
51     source ${CVS_DEST}/magellan-src/mage/usr/lib/mage/mage4.functions.sh
52    
53     echo "Building list ...."
54    
55     for arch in ${ARCHES}
56     do
57     for pkg in ${MAGE_REPO}/*/*
58     do
59     pcat="$(basename $(dirname ${pkg}))"
60    
61     # excludes
62     [[ ${pcat} = profiles ]] && continue
63     [[ ${pcat} = fake ]] && continue
64     [[ ${pcat} = include ]] && continue
65    
66     pname="$(basename ${pkg})"
67    
68     # echo "${pcat} ${pname}"
69    
70     MAGEDIR=${MAGE_REPO}
71     MAGE_DISTRIBUTION=${DISTRIBUTION}
72     ARCH=${arch}
73    
74     # ignore blacklist
75     # blacklisted(){ return 0; }
76    
77     pkg=$(get_highest_magefile ${pcat} ${pname})
78    
79     #echo "DEBUG: pkg=${pkg}"
80    
81     # search all dist dirs
82     found=1
83     for dist in ${DISTRIBUTIONS}
84     do
85     pkgname="$(get_value_from_magefile PKGNAME ${pkg})"
86    
87     # abort and warn if nothing found
88     if [[ -z ${pkgname} ]]
89     then
90     echo "WARNING: nothing found for ${pcat}/${pname} with dist '${DISTRIBUTION}' for arch '${ARCH}'"
91     if [[ -z $(echo ${DIST_MISSING} | fgrep "${pcat}/${pname}-${ARCH}") ]]
92     then
93     DIST_MISSING="${DIST_MISSING} ${pcat}/${pname}-${ARCH}"
94     fi
95    
96     # do not add the previous item on the list
97     found=0
98    
99     continue
100     fi
101    
102     mpk="${MPK_REPO}/${dist}/packages/${ARCH}/${pkgname}.mpk"
103     #echo ${mpk}
104     if [ -f ${mpk} ]
105     then
106     #echo "found: ${mpk}"
107     found=0
108     break
109     else
110     #echo "missing: ${mpk}"
111     found=1
112     fi
113     done
114    
115     #echo "DEBUG: found=${found}"
116     [[ ${found} = 1 ]] && MISSING_PKGS="${MISSING_PKGS} ${ARCH}:$(basename ${mpk})"
117     done
118     done
119    
120     echo
121     echo "Missing following packages:"
122     for i in ${MISSING_PKGS}
123     do
124     echo "${i}"
125     done | sort
126    
127    
128     echo
129     echo "Following packages are not in dist '${DISTRIBUTION}' or blacklisted:"
130     for i in ${DIST_MISSING}
131     do
132     echo "${i}"
133     done | sort
134    
135     rm -rf ${CVS_DEST}

Properties

Name Value
svn:executable *