4 # give it a directory of a local mirror of a repo and this
5 # tries to detect the repo type and generate one SOLV file on stdout
11 if test -d repodata; then
14 # This contains a primary.xml* and maybe patches
15 for i in primary.xml*; do
17 *.gz) cmd="gzip -dc" ;;
18 *.bz2) cmd="bzip2 -dc" ;;
21 # only check the first primary.xml*, in case there are more
25 if test -n "$cmd"; then
26 # we have some primary.xml*
27 primfile=`mktemp` || exit 3
28 $cmd $i | rpmmd2solv > $primfile
32 if test -f patches.xml; then
33 patchfile=`mktemp` || exit 3
36 for i in patch-*.xml*; do
38 *.gz) gzip -dc "$i" ;;
39 *.bz2) bzip2 -dc "$i" ;;
44 ) | grep -v '\?xml' | patchxml2solv > $patchfile
47 # Now merge primary and patches
48 if test -s $primfile && test -s $patchfile; then
49 mergesolv $primfile $patchfile
50 elif test -s $primfile; then
52 elif test -s $patchfile; then
55 rm -f $primfile $patchfile
56 elif test -d suse/setup/descr; then
57 cd suse/setup/descr || exit 2
60 if test -s packages.gz; then
62 elif test -s packages.bz2; then
63 bzip2 -dc packages.bz2
64 elif test -s packages; then
68 # XXX need to do something with packages.DU and packages.{lang}
70 # Now patterns. Not simply those files matching *.pat{,.gz,bz2},
71 # but only those mentioned in the file 'patterns'
72 if test -f patterns; then
73 for i in `cat patterns`; do
74 test -s "$i" || continue
76 *.gz) gzip -dc "$i" ;;
77 *.bz2) bzip2 -dc "$i" ;;