#
# alias: generate hostname alias rewriting rules
#

REVISION_ID='@(#)alias	3.4 (motonori/WIDE) 2/26/94'

#|# hostname alias file (set path of alias file)
#|#ADDRESS_ALIAS_FILE=

# if something is defined
if [ "$ADDRESS_ALIAS_FILE" ]
then

	# preserve current argument vector
	ARVG="$@"

	if [ "$REVISION_ID_LIST" ]
	then
		REVISION_ID_LIST="$REVISION_ID_LIST\\
# $REVISION_ID"
	else
		REVISION_ID_LIST="# $REVISION_ID"
	fi

S0ALIASRULE='\
# envelope alias rewriting\
#R$*<@$*ALIAS_NAME>$*	$:$1<@$2REAL_NAME>$3\
#R$*<@$+ALIAS_NAME>$*	$:$1<@REAL_NAME>$3\
#R$*<@ALIAS_NAME>$*	$:$1<@REAL_NAME>$2'

ALIASRULE='\
# header/envelope alias rewriting\
#R$*<@$*ALIAS_NAME>$*	$:$1<@$2REAL_NAME>$3\
#R$*<@$+ALIAS_NAME>$*	$:$1<@REAL_NAME>$3\
#R$*<@ALIAS_NAME>$*	$:$1<@REAL_NAME>$2'

	# if ADDRESS_ALIAS_FILE exists
	if [ -f $ADDRESS_ALIAS_FILE ]
	then

		# parse ALIAS_FILE
		exec < $ADDRESS_ALIAS_FILE
		while read LINE
		do
			case "$LINE" in
			'') ;;  # skip
			\#*) ;; # skip
			*)
#				set $LINE
				eval "set `echo $LINE`"

				# the first chars are:
				#  E(envelope only)
				#  B(both header&envelope).
				case "$1" in

				V*)	# version number
shift
REVISION_ID_LIST="$REVISION_ID_LIST\\
# $@" ;;

				E*)	# envelope only rewriting
					case "$2" in 
					\**)	# with wildcard "*"
S0ALIASRULE="$S0ALIASRULE"'\
R$*<@$'"$2"'>$*		$:$1<@$2'"$3"'>$3' ;;
					+*)	# with wildcard "+"
S0ALIASRULE="$S0ALIASRULE"'\
R$*<@$'"$2"'>$*		$:$1<@'"$3"'>$3' ;;
					*)	# without wildcard
S0ALIASRULE="$S0ALIASRULE"'\
R$*<@'"$2"'>$*		$:$1<@'"$3"'>$2' ;;
					esac ;;

				B*)	# header/envelope rewriting
					case "$2" in 
					\**)	# with wildcard "*"
ALIASRULE="$ALIASRULE"'\
R$*<@$'"$2"'>$*		$:$1<@$2'"$3"'>$3' ;;
					+*)	# with wildcard "+"
ALIASRULE="$ALIASRULE"'\
R$*<@$'"$2"'>$*		$:$1<@'"$3"'>$3' ;;
					*)	# without wildcard
ALIASRULE="$ALIASRULE"'\
R$*<@'"$2"'>$*		$:$1<@'"$3"'>$2' ;;
					esac ;;

				*) ;;	# other lines should be comment lines
				esac ;;
			esac
		done
		# end of ADDRESS_ALIAS_FILE parsing

	else
	# if ADDRESS_ALIAS_FILE is not found.
		echo "alias: $ADDRESS_ALIAS_FILE not found." 1>&2
	fi

	# recover argument vector
	set "$ARGV"

fi
