3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-11-09 21:49:34 +01:00
pbot/modules/compiler_block.pl

45 lines
877 B
Perl
Raw Normal View History

#!/usr/bin/perl
# compiler_client.pl connects to compiler_server.pl hosted at PeerAddr/PeerPort below
# and sends a nick, language and code, then retreives and prints the compilation/execution output.
#
# this way we can run the compiler virtual machine on any remote server.
use warnings;
use strict;
use IO::Socket;
my $sock = IO::Socket::INET->new(
PeerAddr => '192.168.0.42',
PeerPort => 9000,
Proto => 'tcp');
if(not defined $sock) {
2013-06-03 19:04:24 +02:00
print "Fatal error compiling: $!; try again later\n";
die $!;
}
my $nick = shift @ARGV;
my $channel = shift @ARGV;
my $code = join ' ', @ARGV;
#$code = "{ $code";
$code =~ s/\s*}\s*$//;
2015-01-23 22:46:18 +01:00
my $lang = "c11";
if($code =~ s/-lang=([^ ]+)//) {
2015-01-23 22:46:18 +01:00
$lang = lc $1;
}
print $sock "compile:$nick:$channel:$lang\n";
print $sock "$code\n";
print $sock "compile:end\n";
while(my $line = <$sock>) {
print "$line";
}
close $sock;