Difference between revisions of "Rp"

From Organic Design wiki
m
(only kill running peerd's if compiled successfully)
Line 5: Line 5:
 
$ps = 'ps x |egrep husk[.]bin$';
 
$ps = 'ps x |egrep husk[.]bin$';
 
$qxps = qx($ps);
 
$qxps = qx($ps);
 
# kill currently running instances of peerd
 
if ($qxps) {
 
print "Killing currently running peerd instances:\n";
 
print $qxps;
 
for (split /\n/, $qxps) { qx(kill $1) if /^\s*([0-9]+).+?\d+:\d\d\s*(.+)/ }
 
} else { print "Nothing to kill :-(\n" }
 
  
 
# Sync files specified in args, or obtain a list of files from Benders fileSync list
 
# Sync files specified in args, or obtain a list of files from Benders fileSync list
Line 48: Line 41:
 
if ($err) { print "$err\n\nAborting execution, there are errors or warnings!\n\n" }
 
if ($err) { print "$err\n\nAborting execution, there are errors or warnings!\n\n" }
 
else {
 
else {
print "\nCompiled successfully!\nPassing execution over now.\n\n";
+
print "\nCompiled successfully!\n
 +
 
 +
# kill currently running instances of peerd
 +
if ($qxps) {
 +
print "Killing currently running peerd instances:\n";
 +
print $qxps;
 +
for (split /\n/, $qxps) { qx(kill $1) if /^\s*([0-9]+).+?\d+:\d\d\s*(.+)/ }
 +
} else { print "Nothing to kill :-(\n" }
 +
 
 +
print "Passing execution over now...\n\n";
 
qx( /home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 & );
 
qx( /home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 & );
 
print qx($ps);
 
print qx($ps);
 
}
 
}

Revision as of 10:15, 21 July 2006

  1. !/usr/bin/perl

print "\n";

$wiki = "http://www.organicdesign.co.nz/wiki/index.php"; $ps = 'ps x |egrep husk[.]bin$'; $qxps = qx($ps);

  1. Sync files specified in args, or obtain a list of files from Benders fileSync list

if ($#ARGV<0) { print "\nRetrieving files specified in OD:Bender/fileSync list...\n"; $fileSync = qx(curl -s "$wiki?title=Bender/fileSync&xpath:view:"); $fileSync =~ s/<\/ul>.+$//ms;

%articles = $fileSync =~ /

  • .+?title="(.+?)">(.+?)<\/a>/g; } else { print "Retrieving files specified in command line args...\n"; $articles{$_} = "/home/peerd/$_" for @ARGV; }
    1. Retrieve each article and save to specified filepath
    for my $article (keys %articles) { print "\t$article\n"; if (open FH, '>', $articles{$article}) { binmode FH; print FH qx(curl -s "$wiki?title=$article&action=raw")."\n"; close FH; } }
    1. Compile husk and format output
    print "\nCompiling husk...\n"; $err = qx( gcc -o /home/peerd/husk.bin /home/peerd/husk.c 2>&1 ); $err =~ s/^In file.+?$//mg; $err =~ s/^\s+from/\nfrom/mg; $err =~ s/^/\t/mg; $err =~ s/\/home\/peerd\///g; $err =~ s/^\s+//g; $err =~ s/\s+$//g;
    1. Execute compiled result if compiled without any problems
    if ($err) { print "$err\n\nAborting execution, there are errors or warnings!\n\n" } else { print "\nCompiled successfully!\n # kill currently running instances of peerd if ($qxps) { print "Killing currently running peerd instances:\n"; print $qxps; for (split /\n/, $qxps) { qx(kill $1) if /^\s*([0-9]+).+?\d+:\d\d\s*(.+)/ } } else { print "Nothing to kill :-(\n" } print "Passing execution over now...\n\n"; qx( /home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 & ); print qx($ps); }