#! /bin/bash
#                                 Jun NISHII <jun@vinelinux.org>
#                         Time-stamp: <2000-03-09 12:12:22 vine>

LANG=ja_JP.ujis
LANGUAGE=ja
export LANG LANGUAGE

showUsage() {
cat <<EOF
Usage: ${1##/*/} (option) (<top>) <dirname>

    option:
	--nolink: rpm へのリンクはつくらない
	--nodesc: 名前とSummary のみを表示

    dirname: RPMS/{i386,noarch} の RPMS のディレクトリを指定

        ex) % listrpm.sh /usr/src/redhat/RPMS

		この場合、各ファイルへのリンクは＊絶対パス＊になる

       ex2) % cd /usr/src/redhat/RPMS
            % listrpm.sh .

		この場合、各ファイルへのリンクはカレント・ディレクトリからの＊相対パス＊になる。

    top: ftpサイトのディレクトリ指定をしたいときは、ここで
         そのトップ (.../RPMS/...の RPMS のある場所)を指定

       ex) % listrpm.sh ftp://ftp.jaist.ac.jp/pub/os/linux/Vine/VinePlus/RPMS rpm/RPMS

       これで、./rpm/RPMS 以下のパッケージ・リストを作成し、パッケージへのリンクは
       ftp://ftp.jaist.ac.jp/pub/os/linux/Vine/VinePlus/RPMS/ 以下にはられる。
EOF
}

makeHead(){
cat <<EOF
<html>
<head>
   <link REV=MADE HREF="mailto:jun@flatout.org">
   <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-jp">
   <meta NAME="resource-type" CONTENT="document">
</head>

<body bgcolor="#FFFFFF">
<h1><font color="#006600">RPMパッケージ一覧</font></h1>
<div align=right>
Last modified: `date`
</div>
<hr>
EOF
}

makeTail(){
cat <<EOF
<hr>
</body>
</html>
EOF
}

if [ $# = 0 ]; then
    showUsage $0
	exit 1
fi

for arg in $* ; do
    case $arg in
	--nodesc) short=1; shift ;;
	--nolink) nolink=1; shift ;;
    esac
done

if [ $# = 2 ]; then
	top=$1/
	shift
else
	top=${1%.}
fi

makeHead
for arch in i386/ ppc/ sparc/ alpha/ noarch/ ""; do
	for i in `ls $1/${arch}*.rpm 2>/dev/null`; do
		link=${top}${arch}${i##*/}
		name=${i##*/}

		if [ ${nolink:-0} = 0 ]; then
		    echo "<h4><a href="$link">$name</a></h4>"
		    echo "<blockquote>"
		else
		    echo "<h4><font color="blue">$name</font></h4>"
		    echo "<blockquote>"
		fi

		if [ ${short:-0} = 0 ]; then
		rpm -qp --queryformat \
			"<font color="#880000">"%{SUMMARY}"</font><br><pre>"%{DESCRIPTION}"</pre>" \
			$i |nkf -e
		else
		rpm -qp --queryformat \
			"<font color="#880000">"%{SUMMARY}"</font>" \
			$i |nkf -e
		fi
		echo "</blockquote>"
	done
done

makeTail
exit
