#!/bin/sh
#
# UUCP mkconfig - generate config files
#

# establish environment
install_dir=/etc/uucp
link_dir=/usr/lib/uucp/conf
open_files="config dial dialcode port sys"
secure_files="call passwd"
files="$open_files $secure_files"

# must be root to run this
if uid=`id | sed 's/uid=\([0-9][0-9]*\).*/\1/'`
then
	if [ $uid = 0 ]
	then
		: OK
	else
		echo "$0: error: you must be root to run this" >&2
		exit 1
	fi
else
	echo "$0: error: could not determine your user ID" >&2
	echo "$0: info: check that 'id' and 'sed' are in your PATH" >&2
	exit 1
fi

# create directories
echo "verifying that required directories exist..."
for dir in $install_dir $link_dir
do
	if [ -d $dir ]
	then
		echo "   $dir already exists - no action needed"
	elif mkdir -m 0755 $dir
	then
		echo "   created $dir"
	else
		echo "$0: error: could not create $dir" >&2
		echo "$0: info: check permissions on the next-higher directory"
		exit 1
	fi
done
echo

# determine system node name
echo "determining your system's node name..."
if nodename=`uname -n`
then
	echo "   found system name to be $nodename"
else
	echo "$0: error: could not find node name with uname" >&2
	echo "$0: info: you need to set your system's node name" >&2
	echo "   with the hostname command" >&2
	exit 1
fi
echo

# create files from templates
echo "creating configuration files from templates..."
for file in $files
do
	if sed "s/%nodename%/$nodename/g" $file.in > $install_dir/$file
	then
		echo "   created $file successfully"
	else
		echo "$0: error: failed to create config file - $file" >&2
		echo "$0: info: check if the directory is writable" >&2
		exit 1
	fi
done
echo

# link files into uucp/conf directory
echo "linking config files..."
for file in $files
do
	if [ -L $link_dir/$file ]
	then
		echo "   $file is already linked - no action needed"
	elif ln -fs $install_dir/$file $link_dir/$file
	then
		echo "   $file linked into shared configuration directory"
	else
		echo "$0: error: failed to link $file into shared configuration directory" >&2
		echo "$0: info: check the permissions of $link_dir" >&2
		exit 1
	fi
done

# set modes on config files
for file in $files
do
	chown uucp.uucp $install_dir/$file
done
for file in $open_files
do
	chmod 0644 $file
done
for file in $secure_files
do
	chmod 0600 $file
done
