47 lines
679 B
Perl
47 lines
679 B
Perl
#!/usr/bin/env perl
|
|
|
|
use v5.10.1;
|
|
use IO::Select;
|
|
use IO::Socket::UNIX;
|
|
use threads;
|
|
|
|
die("Give at least the socket file as argument") if (! @ARGV);
|
|
|
|
my $sock_path = shift @ARGV;
|
|
|
|
my $socket = IO::Socket::UNIX->new(
|
|
Type => SOCK_STREAM,
|
|
Peer => $sock_path,
|
|
);
|
|
|
|
die "Can't read socket ($sock_path): $!" unless $socket;
|
|
|
|
if (@ARGV)
|
|
{
|
|
while (my $arg = shift @ARGV)
|
|
{
|
|
say $socket $arg;
|
|
}
|
|
}
|
|
|
|
my $s = IO::Select->new();
|
|
|
|
$s->add(\*STDIN);
|
|
$s->add($socket);
|
|
|
|
while ($s->count())
|
|
{
|
|
for my $rd ($s->can_read(0.25))
|
|
{
|
|
my $line = <$rd>;
|
|
chomp($line);
|
|
|
|
if ($rd == \*STDIN) {
|
|
say $socket $line;
|
|
}
|
|
elsif ($rd == $socket) {
|
|
say $line;
|
|
}
|
|
}
|
|
}
|