#!/bin/sh

test -z "$clients" && clients=$(find /opt/ltsp/. -mindepth 1 -maxdepth 1 -type d 2>/dev/null)
hostname=$(hostname)
ips=$(ip -o addr show | awk '$3 == "inet" && $4 !~ /^127\./ { print $4 }' | sed -e 's,/[0-9][0-9]*\>,,g')
output=$(tempfile)
enc="dsa rsa"

names="$hostname $ips"

logfile="/var/log/syslog"

if [ -z "$clients" ]; then
	logger -f $logfile -t ltsp "No client chroots found, please run ltsp-build-client"
	exit 0
fi

for name in $names; do
    for encryption in $enc; do
		if [ -f /etc/ssh/ssh_host_${encryption}_key.pub ]; then
			echo $(echo $name $(cat /etc/ssh/ssh_host_${encryption}_key.pub|awk '{split ($0, a, " "); print a[1]" "a[2]" "}')) >> $output
			logger -f $logfile -t ltsp "# Creating ${encryption}-hostkey for $name"
		else
			logger -f $logfile -t ltsp "No ${encryption} key found for ${name}, please configure your ssh server correctly"
		fi
    done
done

if [ -f /etc/ltsp/ssh_known_hosts.extra ]; then
    cat /etc/ltsp/ssh_known_hosts.extra >> $output
fi

for client in $clients; do
    if [ -d $client/etc/ssh ]; then
        install -m 644 $output $client/etc/ssh/ssh_known_hosts
    else
        echo "WARNING: $client/etc/ssh not found. skipping..."
    fi
done

rm -f $output

exit 0
