/[Sack]/trunk/lib/Sack/Server.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Sack/Server.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 166 by dpavlin, Sun Nov 1 21:17:36 2009 UTC revision 173 by dpavlin, Tue Nov 3 17:28:57 2009 UTC
# Line 8  use IO::Select; Line 8  use IO::Select;
8    
9  use Data::Dump qw(dump);  use Data::Dump qw(dump);
10  use Storable qw();  use Storable qw();
11    use File::Slurp;
12    
13    my @cloud = qw(localhost tab.lan llin.lan);
14    
15    my $cloud_path = $ENV{CLOUD} || '/srv/Sack/etc/lib';
16    @cloud = read_file $cloud_path;
17    @cloud = map { chomp $_; $_ } @cloud;
18    
19    warn "# cloud ",dump( @cloud );
20    
21  my $listen_port = 4444;  my $listen_port = 4444;
22    
23  my $node_path = '/tmp/client.pl';  my $node_path = $0;
24    $node_path =~ s{server.pl}{client.pl};
25    
26  my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => $listen_port, Reuse => 1) or exit;  my $lsn = IO::Socket::INET->new(Listen => 1, LocalPort => $listen_port, Reuse => 1) or die $!;
27  my $sel = IO::Select->new($lsn);  my $sel = IO::Select->new($lsn);
28    
29  my $info;  my $info;
# Line 35  sub fork_node { Line 45  sub fork_node {
45                  return;                  return;
46          } else {          } else {
47                  # child                  # child
48                  my $cmd = qq|ssh -R $port:127.0.0.1:$listen_port $host $node_path $port|;                  my $cmd = qq|ssh -F $cloud_path.ssh -R $port:127.0.0.1:$listen_port $host $node_path $port|;
49                  warn "# exec: $cmd\n";                  warn "# exec: $cmd\n";
50                  exec $cmd;                  exec $cmd;
51          }          }
# Line 43  sub fork_node { Line 53  sub fork_node {
53    
54  my $node_port = 4000;  my $node_port = 4000;
55    
56  foreach my $host ( qw/localhost tab.lan llin.lan/ ) {  foreach my $host ( @cloud ) {
57          system "scp client.pl $host:$node_path";          system "echo $node_path | cpio --create --dereference | ssh -T -F $cloud_path.ssh $host cpio --extract --make-directories --unconditional --verbose";
58          fork_node( $node_port++, $host );          fork_node( $node_port++, $host );
59  }  }
60    

Legend:
Removed from v.166  
changed lines
  Added in v.173

  ViewVC Help
Powered by ViewVC 1.1.26