#!/bin/bash
#
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
#
# Author: Isaac Freeman
#
# Make some wild guesses about what debian perl modules a package requires. 
# Seems to work so far for xCAT.
#
# Scans the current directory.
#

found=""

# Warning: voodoo ahead

find . -name .svn -prune -o -type f \
  | xargs grep -l '^#!.*perl' \
  | xargs grep -hE '^\s*(use|require) ' \
  | while read mod; do
      pkg=$( awk '{ sub(";", "", $2);
                    gsub("::", "-", $2); 
                    print $2 }' <<<"$mod" \
               | tr '[:upper:]' '[:lower:]' )

      pkgname="lib${pkg}-perl"

      if apt-cache show $pkgname >/dev/null 2>&1; then

        case "$found" in
          *$pkgname*) continue ;;
          *) 
            [ -n "$found" ] && echo -n ", "
            echo -n "$pkgname"
            found="$found $pkgname"
          ;;
        esac

      elif perl <<<"$mod" >/dev/null 2>&1; then
        # Blindly assume that if perl doesn't complain about this, that its
        # built-in to or ships with perl.
        continue
      elif [ "$1" == "-w" ]; then
        echo
        echo "warning: $pkg not found and perl doesn't like \"$mod\"" >&2
      fi
    done
echo

# vim: set sts=2 sw=2 et: