Rp

From Organic Design wiki
Revision as of 02:16, 21 July 2006 by Nad (talk | contribs)
  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. kill currently running instances of peerd

if ($qxps) { print "Killing currently running peerd instances\n"; for (split /\n/, qx($ps)) { qx(kill $1) if /^\s*([0-9]+).+?\d+:\d\d\s*(.+)/ } qx($ps); } else { print "There are currently no peerd instances running.\n" }

  1. Obtain a list of files from Benders fileSync list

print "Parsing fileSync list\n"; $fileSync = qx(curl -s "$wiki?title=Bender/fileSync&xpath:view:"); $fileSync =~ s/<\/ul>.+$//ms;

%articles = $fileSync =~ /

  • .+?title="(.+?)">(.+?)<\/a>/g;
    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 logging output
    print "Compiling husk...\n"; $err = qx( gcc -o /home/peerd/husk.bin /home/peerd/husk.c 2>&1 );
    1. Execute compiled result
    if ($err) { print "\nAborting execution, there are errors or warnings!\n\n" } else { print "\nCompiled successfully!\nPassing execution over now.\n\n"; exec '/home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 &'; qx($ps); }