3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-12-24 19:52:34 +01:00

compiler_vm: update server scripts

This commit is contained in:
Pragmatic Software 2019-04-27 00:23:23 -07:00
parent 9707e133ff
commit d702427ad1
2 changed files with 18 additions and 13 deletions

View File

@ -7,15 +7,13 @@
use warnings; use warnings;
use strict; use strict;
use English;
use File::Basename; use File::Basename;
use JSON; use JSON;
my $USERNAME = 'compiler'; my $USERNAME = 'compiler';
my $USE_LOCAL = defined $ENV{'CC_LOCAL'}; my $USE_LOCAL = defined $ENV{'CC_LOCAL'};
# uncomment the following if installed to the virtual machine
# use constant MOD_DIR => '/usr/local/share/compiler_vm/languages';
use constant MOD_DIR => '/usr/local/share/compiler_vm/languages'; use constant MOD_DIR => '/usr/local/share/compiler_vm/languages';
use lib MOD_DIR; use lib MOD_DIR;
@ -108,25 +106,32 @@ sub run_server {
} }
if ($pid == 0) { if ($pid == 0) {
my ($uid, $gid) = (getpwnam $USERNAME)[2, 3]; my ($uid, $gid, $home) = (getpwnam $USERNAME)[2, 3, 7];
if (not $uid and not $gid) { if (not $uid and not $gid) {
print "Could not find user $USERNAME: $!\n"; print "Could not find user $USERNAME: $!\n";
exit; exit;
} }
if ($compile_in->{'persist-key'}) { if ($compile_in->{'persist-key'}) {
system ("rm -rf \"/home/compiler/$compile_in->{'persist-key'}\"");
system("mount /dev/vdb1 /root/factdata"); system("mount /dev/vdb1 /root/factdata");
system("mkdir /root/factdata/$compile_in->{'persist-key'}"); system("mkdir -p \"/root/factdata/$compile_in->{'persist-key'}\"");
system("cp -R -p /root/factdata/$compile_in->{'persist-key'}/* /home/compiler/"); system("cp -R -p \"/root/factdata/$compile_in->{'persist-key'}\" \"/home/compiler/$compile_in->{'persist-key'}\"");
} }
system("chmod -R 755 /home/compiler"); system("chmod -R 755 /home/compiler");
system("chown -R compiler /home/compiler/*"); system("chown -R compiler /home/compiler");
system("chgrp -R compiler /home/compiler/*"); system("chgrp -R compiler /home/compiler");
system("rm -rf /home/compiler/prog*"); system("rm -rf /home/compiler/prog*");
system("pkill -u compiler");
$( = $gid; $ENV{USER} = $USERNAME;
$< = $uid; $ENV{LOGNAME} = $USERNAME;
$ENV{HOME} = $home;
$GID = $gid;
$EGID = "$gid $gid";
$EUID = $UID = $uid;
my $result = interpret(%$compile_in); my $result = interpret(%$compile_in);
@ -142,9 +147,9 @@ sub run_server {
if ($compile_in->{'persist-key'}) { if ($compile_in->{'persist-key'}) {
system("id"); system("id");
system("cp -R -p /home/compiler/* /root/factdata/$compile_in->{'persist-key'}/"); system("cp -R -p \"/home/compiler/$compile_in->{'persist-key'}\" \"/root/factdata/$compile_in->{'persist-key'}\"");
system("umount /root/factdata"); system("umount /root/factdata");
system ("rm -rf /home/compiler/*"); system ("rm -rf \"/home/compiler/$compile_in->{'persist-key'}\"");
} }
exit; exit;

View File

@ -100,7 +100,7 @@ sub execute {
next; next;
} }
if($line =~ m/^Reading symbols from.*done\.$/) { if($line =~ m/^Reading symbols from/) {
gdb $in, "break gdb\n"; gdb $in, "break gdb\n";
gdb $in, "list main,9001\n"; gdb $in, "list main,9001\n";