Difference between revisions of "Rp"

From Organic Design wiki
(needs newline)
(display ps list after each change)
Line 1: Line 1:
 
#!/usr/bin/perl
 
#!/usr/bin/perl
 +
print "\n";
  
 
$wiki = "http://www.organicdesign.co.nz/wiki/index.php";
 
$wiki = "http://www.organicdesign.co.nz/wiki/index.php";
 
+
$ps = 'ps x |egrep husk[.]bin$';
 +
qx $ps;
 
# kill currently running instances of peerd
 
# kill currently running instances of peerd
 
print "Killing currently running peerd instances\n";
 
print "Killing currently running peerd instances\n";
for ( split /\n/, qx( ps x|egrep \"husk[.]bin$\" ) ) { # damn " never work :-(
+
for ( split /\n/, qx $ps ) { qx( kill $1 ) if /^\s*([0-9]+).+?\d+:\d\d\s*(.+)/ }
        qx( kill $1 ) if /^\s*([0-9]+).+?\d+:\d\d\s*(.+)/;
+
qx $ps;
        }
 
  
 
# Obtain a list of files from Benders fileSync list
 
# Obtain a list of files from Benders fileSync list
Line 17: Line 18:
 
# Retrieve each article and save to specified filepath
 
# Retrieve each article and save to specified filepath
 
for my $article (keys %articles) {
 
for my $article (keys %articles) {
         print "Retrieving $article\n";
+
         print "\t$article\n";
 
         if ( open FH, '>', $articles{$article} ) {
 
         if ( open FH, '>', $articles{$article} ) {
 
                 binmode FH;
 
                 binmode FH;
Line 33: Line 34:
 
print "Passing execution over now.\n\n";
 
print "Passing execution over now.\n\n";
 
exec '/home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 &';
 
exec '/home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 &';
 +
qx $ps;

Revision as of 01:55, 21 July 2006

  1. !/usr/bin/perl

print "\n";

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

  1. kill currently running instances of peerd

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;

  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"; qx( date >> /home/peerd/peerd.log ); qx( gcc -o /home/peerd/husk.bin /home/peerd/husk.c 2>> /home/peerd/peerd.log );
    1. Execute compiled result
    print "Passing execution over now.\n\n"; exec '/home/peerd/husk.bin >> /home/peerd/peerd.log 2>&1 &'; qx $ps;