#!/usr/bin/perl

use NetAddr::IP;

if ( $ARGV[2] ) {
    $server = $ARGV[0];
    $network = $ARGV[1];
    $netmask = $ARGV[2];
} else {
    $server="172.31.100.254";
    $network="172.31.100.0";
    $netmask="255.255.255.0";
}

if ( !  `grep "$server	server.ltsp" /etc/hosts` ) {
    open (HOSTS, ">>/etc/hosts");
    $ws=1;
    $ip = new NetAddr::IP "$network/$netmask" ;
    ++$ip; # skip network address
    for ($ip ; $ip < $ip->broadcast; $ip++) {
        ($out, $junk) = split("/", $ip);
        if ($out eq $server) {
            print HOSTS "$out	server.ltsp	server\n";
        } else {
            $foo = $ws;
            if ($ws < 100) { $foo = "0" . $ws; }
            if ($ws < 10) { $foo = "00" . $ws; }
            print HOSTS "$out 	ws$foo.ltsp	ws$foo\n";
        }
        $ws++;
    }
}
