#!/bin/sh
# 2005-2006, 2009 (c) Etersoft www.etersoft.ru
# Author: Vitaly Lipatov <lav@etersoft.ru>
# Public domain
#
# Открываем багзиллу на багах пакета
# Параметры:
# rpmbugs название спек-файла | название пакета | -qf путь к файлу, который лежит в пакете
# TODO: окошко вешания баги (использовать перловые возможности?)
# TODO: нормальную обработку парамеров

# load common functions, compatible with local and installed script
. `dirname $0`/../share/eterbuild/functions/common
load_mod rpm web

BUGZILLAURL="https://bugzilla.altlinux.org"
PRODUCT=Sisyphus


show_bugs()
{
	URL=$1
	if [ -z "$TEXT" ] ; then
		echog "Opening URL '$URL' in browser $BROWSER"
		$BROWSER $URL &
	else
		echo "@Fetching from '$URL'..."
		$BROWSER -dump -no-numbering -no-references -dump-width $COLUMNS $URL
	fi
}

show_bugbyid()
{
#	TEXT=1
	local URLSHOWBUG="$BUGZILLAURL/show_bug.cgi?id=$1"
	show_bugs "$URLSHOWBUG"
}


#parse_cmd_pre "$@"

if [ "$1" = "-h" ]; then
	echog "rpmbugs - open bugs in BROWSER"
	echog "rpmbugs [-t] spec | bug number | package name | -qf command_name | /path/to/file"
	echog "Options:"
	echog " -t - list in text console"
	exit 0
fi

if [ "$1" = "-n" ] ; then
	shift
	NEWBUG=1
fi

if [ "$1" = "-t" ] ; then
	shift
	TEXT=1
	which links >/dev/null && BROWSER=links
fi

if ! check_display ; then
	TEXT=1
	which links >/dev/null && BROWSER=links
fi

SPECLIST=$@
if [ "$1" = "-qf" ]
then
	shift
	SPECLIST=$(rpmqf "$1")
	if [ -e "$1" ] ; then
		SPECLIST=$(querypackage $SPECLIST NAME)
	fi
fi

# if param is number
if [ -z `echo ${1} | sed -e "s/[0-9]*//"` ] ; then
	show_bugbyid "$1"
	exit
fi

for i in $SPECLIST ; do
	if [ -f $i ]
	then
		if [ -z ${i/*rpm/} ]
		then
			# it is rpm package
			PKGNAME=$(querypackage $i NAME)
		else
			PKGNAME=$(get_name $i)
			test -z ${PKGNAME} && fatal "Cannot get package name"
		fi
	else
		# yes, DD=$(false) || DD=other works
		PKGNAME=$(querypackage $i NAME) || PKGNAME=$i
	fi

	if [ -n "$NEWBUG" ] ; then
		fatal "Do not realized yet. Welcome to developing!"
		#URL=""
		echog "Enter Summary for package $PKGNAME and press Enter:"
		read SUMMARY
		echog "Enter description (finish with Ctrl-D):"
		ID=`altbug --pkg "$PKGNAME" --subj "$SUMMARY" | tail -n 1 | sed -e "s|^.*#||" -e "s|:.*$||"`
		#altbug --pkg "$PKGNAME" --subj "$SUMMARY"
		show_bugbyid $ID
	else
		URLBUGLIST="$BUGZILLAURL/buglist.cgi?product=$PRODUCT&component=$PKGNAME&component_type=equals&simple=1"
		show_bugs "$URLBUGLIST" | grep "@"
	fi

done
