#!/bin/sh

logsavedir=/var/log/installer

header () {
	echo
	echo "=============================================="
	echo "$@"
	echo "=============================================="
}

echo
echo "$(gettext "Now some questions about your install ...")"

gettext "How did you boot the installer (CD/floppy/network/..)?"
printf " "
read bootmethod

gettext "What image did you use to install? (If you can, give its URL and build date)"
echo
printf "> "
read image

gettext "Describe your machine (eg, IBM Thinkpad R32):"
printf " "
read machine

perl -e '
	$tpl=shift;
	$bootmethod=shift;
	$image=shift;
	$machine=shift;

	$|=1;
	open (IN, "$tpl") || die "$tpl: $!";
	while (<IN>) {
		if (/^Boot method: <.*>/i) {
			s/<.*>/$bootmethod/;
			print;
		}
		elsif (/^Image version: <.*>/i) {
			s/<.*>/$image/;
			print;
		}
		elsif (/^Machine: <.*>/i) {
			s/<.*>/$machine/;
			print;
		}
		else {
			print;
		}
	}
' /usr/share/installation-report/install-report.template "$bootmethod" "$image" "$machine" | tail -n +2 >&3

if [ ! -e "$logsavedir" ] || [ ! -e "$logsavedir/hardware-summary" ]; then
	if [ -e "/var/log/debian-installer" ]; then # old name
		logsavedir=/var/log/debian-installer
	fi
fi

if [ ! -e "$logsavedir/hardware-summary" ]; then
	gettext "Cannot find installation logs in /var/log/installer"
	echo
	yesno "$(gettext "Use installation logs from another location? [Y/n] ") " yep
	if [ "$REPLY" = yep ]; then
		while [ ! -e "$logsavedir/hardware-summary" ]; do
			gettext "Enter location of installation logs:"
			printf " "
			read logsavedir
			if [ ! -e "$logsavedir/hardware-summary" ]; then
				gettext "$logsavedir/hardware-summary does not exist"
				echo
			fi
		done
	fi
fi

getlog () {
	log="$1"

	if [ -e "$logsavedir/$log" ]; then
		gettext "Including installer $log in report.."
		echo
		header "Installer $log:" >&3
		if [ -r "$logsavedir/$log" ]; then
			cat "$logsavedir/$log" 2>&1 >&3
		else
			gettext "Only root can read $logsavedir/$log .."
			echo
			su root -c "cat $logsavedir/$log" >&3
		fi
	fi
}

getlog lsb-release
if [ -e "$logsavedir/hardware-summary" ]; then
	getlog hardware-summary
else
	gettext "Running report-hw to summarise hardware for report."
	echo
	header "Hardware information for running system:" >&3
	report-hw 2>&1 >&3
fi
getlog status

# Commented out as inclusion of these files causes installation reports to
# not reach the debian-boot list (#403346)
#if [ -e "$logsavedir/messages" ] || [ -e "$logsavedir/syslog" ] || \
#   [ -e "$logsavedir/partman" ]; then
#	gettext "
#Additional installer log files can be included in the report.
#This is generally only necessary for debugging if there was a problem with
#the install."
#	echo
#	yesno "$(gettext "Include additional log files in report? [y/N] ") " nop
#	if [ "$REPLY" = yep ]; then
#		getlog syslog
#		getlog messages
#		getlog partman
#	fi
#fi
