#!/usr/bin/perl -s
$ENV{'PATH'} .= ":/app/env/bin:/home/kinzler/share/appenv/bin";

%keydom = ('isr'    =>	      '.isr.umich.edu',
	   'mcit'   =>   '.mcit.med.umich.edu',
	   'med'    =>	      '.med.umich.edu',
	   'p-umhs' => '.p-umhs.med.umich.edu',
	   'umhs'   =>   '.umhs.med.umich.edu',
	   'umich'  =>		  '.umich.edu',
	   'umms'  =>	 '.umms.med.umich.edu');

# fqdn - attempt to output a fully-qualified domain name for each given host
# Steve Kinzler, steve@kinzler.com, Feb 16
# https://kinzler.com/me/home.html#unixadm

die "usage: $0 [ -w ] [ host ... ]\n" if $h;

chomp(@ARGV = <>) unless @ARGV;

foreach $arg (@ARGV) {
	next unless $arg;

	($name, $aliases) = gethostbyname($arg);
	@_   = ($name, split(/\s+/, $aliases));
	# try to keep aliases
	@_   = (grep(/^\Q$arg\E(\.|$)/i && /\./, @_), grep(/\./, @_));
	$arg = $_[0] || $arg;

	# custom for UMICH, but harmless for others
	$arg .= $keydom{(split(/\s+/))[1]}
		if $arg !~ /\.|^-$/ && ($a = lc $arg)
		&& ($_ = `(servs -l '$a' | grep '^$a\t';
			   vips  -l '$a' | grep '^$a\t') 2> /dev/null`);

	warn "$0: warning, not fqdn ($arg)\n" if $w && $arg !~ /\./;
	print "$arg\n";
}
