#!/bin/sh
# $Id: indent-html,v 1.8 2015/07/28 23:43:32 tom Exp $
# vi:ts=4 sw=4
doit=yes
show=no
form=-i
wide=
temp=`mktemp`
trap "rm -f $temp" 0 1 2 5 15

usage() {
	cat <<EOF
usage: $0 [options] [html-files]

options:
  -i   indent (default)
  -n   no-op
  -u   unindent (overrides -i)
  -v   verbose, showing diff
  -w   wrap at 132 columns (default: 80)
EOF
	exit 1
}

set -- `getopt 'inuvw' $*`
if test $? != 0 || test $# = 1
then
	usage
fi

for name in $*
do
	case $name in
	-i)
		form=-i
		;;
	-n)
		doit=no
		;;
	-u)
		form="-wrap 4096"
		;;
	-v)
		show=yes
		;;
	-w)
		wide="-wrap 132"
		;;
	--)
		;;
	*.htm|*.html|*.html.in)
		DTD="--doctype strict"
		fgrep '<font color=' $name >/dev/null && DTD=
		fgrep '<frameset' $name >/dev/null && DTD=
		fgrep '<base target=' $name >/dev/null && DTD=
		tidy $DTD $wide $form $name 2>/dev/null >$temp
		if cmp -s $name $temp
		then
			test $show = yes && echo "... unchanged $name"
		else
			test $show = yes && diff -u $name $temp
			test $doit = yes && copy -v $temp $name
		fi
		rm -f $temp
		;;
	*)
		echo "... skip $name"
		;;
	esac
done
