source: trunk/debathena/scripts/gen-packages @ 23503

Revision 23503, 1.8 KB checked in by geofft, 15 years ago (diff)
Merge debathena-gdm-config-athena10 into debathena-gdm-config.
  • Property svn:executable set to *
Line 
1#!/bin/sh
2
3# Usage: gen-packages [-c|-r] [LOCATION]
4
5# Scans the repository or a checkout of it and generates a file named
6# "packages" in the current directory containing a table of source
7# package names and their corresponding directories.  Scanning a
8# checkout is much faster, but relies on the checkout being
9# sufficiently up to date.
10
11# If -c is specified, scans a checkout.  If -r is specified, scans the
12# repository.  -r is the default.
13
14# If LOCATION is specified, it is used in preference to the canonical
15# Athena repository trunk or the canonical source checkout.
16
17set -e
18
19die() {
20  echo "$@" >&2
21  exit 1
22}
23
24usage() {
25  die "gen-packages [-r|-c] [LOCATION]"
26}
27
28type=repos
29
30while getopts cr opt; do
31  case "$opt" in
32  c)
33    type=checkout
34    ;;
35  r)
36    type=repos
37    ;;
38  \?)
39    usage
40    ;;
41  esac
42done
43
44shift $(($OPTIND - 1))
45if [ $# -gt 0 ]; then
46  loc=$1
47elif [ $type = repos ]; then
48  loc=svn+ssh://svn.mit.edu/athena/trunk
49else
50  loc=/afs/dev.mit.edu/source/src-svn
51fi
52
53rm -f packages.unsorted
54echo "Scanning file list of $loc"
55if [ $type = repos ]; then
56  for cf in $(svn ls -R $loc | egrep 'debian/control(\.in)*$'); do
57    echo "Reading $cf"
58    name=$(svn cat $loc/$cf | sed -ne 's/^Source: \(.*\)$/\1/p')
59    dir=${cf%.in}
60    dir=${dir%/debian/control}
61    printf "%-35s %s\n" $name $dir >> packages.unsorted
62  done
63else
64  for cf in $(cd $loc && find | egrep 'debian/control(\.in)*$' \
65      | sed -ne 's/^\.\///p'); do
66    echo "Reading $cf"
67    name=$(sed -ne 's/^Source: \(.*\)$/\1/p' $loc/$cf)
68    dir=${cf%.in}
69    dir=${dir%/debian/control}
70    printf "%-35s %s\n" $name $dir >> packages.unsorted
71  done
72fi
73
74# cyrus-sasl2-mit has a debian dir but is really a debathenify package.
75# config-package dev has some example packages we want to filter out.
76sort -u packages.unsorted | egrep -v "cyrus-sasl2-mit|/examples/" > packages
77rm -f packages.unsorted
Note: See TracBrowser for help on using the repository browser.