#!/bin/sh

# Usage: gen-packages

# Scans the repository or a checkout of it and generates a file named
# "packages" in the current directory containing a table of source
# package names and their corresponding directories.

set -e

die() {
  echo "$@" >&2
  exit 1
}

usage() {
  die "gen-packages"
}

rm -f packages.unsorted
GITHUB_PREFIX="https://raw.github.com/mit-athena"
# Change this once submodules are working
REPOS=$(ssh athenasnap@git.mit.edu "ls -d /git/athena/*.git")
for repo in $REPOS; do
  echo "Looking at $repo"
  repo_base=${repo%.git}
  repo_base=${repo_base#/git/athena/}
  URI="${GITHUB_PREFIX}/${repo_base}/master/debian/control"
  name=$(curl -sf "$URI" | sed -ne 's/^Source: \(.*\)$/\1/p')
  if [ -n "$name" ]; then
    printf "%-35s %s\n" $name $repo >> packages.unsorted
    continue
  fi
  name=$(curl -sf "${URI}.in" | sed -ne 's/^Source: \(.*\)$/\1/p')
  if [ -n "$name" ]; then
    printf "%-35s %s\n" $name $repo >> packages.unsorted
    continue
  fi
  echo "** Couldn't find a control or control.in file!  Skipping..."
done

sort -u packages.unsorted > packages
rm -f packages.unsorted
