forked from tildeverse/uucp
83 lines
1.4 KiB
Perl
83 lines
1.4 KiB
Perl
|
#!/usr/bin/perl
|
||
|
#
|
||
|
use warnings;
|
||
|
use strict;
|
||
|
|
||
|
my $nodename = $ARGV[0];
|
||
|
|
||
|
sub getNodes {
|
||
|
my $nodelist = "../nodelist";
|
||
|
|
||
|
open(my $data, '<', $nodelist);
|
||
|
|
||
|
print("Generating files\n");
|
||
|
while (my $line = <$data>) {
|
||
|
chomp $line;
|
||
|
|
||
|
my @fields = split(",", $line);
|
||
|
my $nodeName = $fields[0];
|
||
|
my $nodeAddress = $fields[1];
|
||
|
generatePort($nodeName,$nodeAddress);
|
||
|
generateSys($nodeName);
|
||
|
print("System ".$nodeName." added successfully\n");
|
||
|
}
|
||
|
|
||
|
print("UUCP bootstrapping complete. Please copy sys and port configuration files to /etc/uucp\n");
|
||
|
}
|
||
|
|
||
|
sub generatePort {
|
||
|
|
||
|
my $currentNode = shift;
|
||
|
my $nodeAddress = shift;
|
||
|
|
||
|
$currentNode =~ s/^([a-z])/\U$1/;
|
||
|
|
||
|
my $template = qq{
|
||
|
port $currentNode
|
||
|
type pipe
|
||
|
command /usr/bin/ssh -a -x -q -i /var/spool/uucp/.ssh/id_rsa -l uucp $nodeAddress
|
||
|
reliable true
|
||
|
protocol etyig
|
||
|
};
|
||
|
|
||
|
my $portFile = "port";
|
||
|
open(FH, '>>', $portFile);
|
||
|
print FH $template;
|
||
|
}
|
||
|
|
||
|
|
||
|
sub generateSys {
|
||
|
my $nodeName = shift;
|
||
|
|
||
|
my $template = qq{
|
||
|
system $nodeName
|
||
|
call-login *
|
||
|
call-password *
|
||
|
local-send /
|
||
|
local-receive /var/spool/uucppublic
|
||
|
remote-send /
|
||
|
remote-receive /var/spool/uucppublic
|
||
|
time any
|
||
|
forward ANY
|
||
|
chat \"\" \\d\\d\\r\\c login: \\d\\L word: \\P
|
||
|
chat-timeout 60
|
||
|
protocol t
|
||
|
port Center
|
||
|
};
|
||
|
|
||
|
my $sysFile = "sys";
|
||
|
|
||
|
open(FH, '>>', $sysFile);
|
||
|
print FH $template;
|
||
|
};
|
||
|
|
||
|
sub generatePasswd {
|
||
|
|
||
|
}
|
||
|
|
||
|
sub generateConfig {
|
||
|
|
||
|
}
|
||
|
|
||
|
getNodes()
|