Magellan Linux

Contents of /trunk/pkgtools/get_missing_packages.sh

Parent Directory Parent Directory | Revision Log Revision Log


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

1 #!/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 *