#!/bin/sh -e
# $Id: sisyphus_gen_contents,v 1.2 2003/11/02 12:04:05 ldv Exp $

export LANG=C LANGUAGE=C LC_ALL=C

PROG="${0##*/}"

[ $# -eq 1 ] || { echo "Usage: $PROG <directory>" >&2; exit 1; }

cd "$1"
shift

WORKDIR=
exit_handler()
{
	local rc=$?
	trap - EXIT
	[ -z "$WORKDIR" ] || rm -rf -- "$WORKDIR"
	exit $rc
}

trap exit_handler SIGHUP SIGINT SIGQUIT SIGTERM EXIT

WORKDIR="$(mktemp -d -t "$PROG.XXXXXXXXXX")"

# generate filelist.
find -mindepth 1 -maxdepth 1 -name \*.rpm -print0 |
	xargs -r0 rpmquery -p --qf '[%{FILENAMES}\t%{NAME}\n]' -- |
	fgrep -v ' ' |
	sort -u >"$WORKDIR"/list

cd "$WORKDIR"

# find dups.
cut -f1 <list |
	uniq -c |
	awk '{if ($1 != "1") printf("%s\t%s\n",$2,$2)}' >dups

# find uniquie lines.
cut -f1 dups |
	join -v1 list - |
	tr -s ' ' '\t' >uniq

sort -u dups uniq
