Difference between revisions of "Rp"

From Organic Design wiki
(kill is reserved word, use kp)
m
Line 8: Line 8:
 
$qxps = [split /^/, qx($ps)]->[0].qx($grep); # adds column header
 
$qxps = [split /^/, qx($ps)]->[0].qx($grep); # adds column header
 
$k = $#{[split /^/, $qxps]};
 
$k = $#{[split /^/, $qxps]};
 +
$s = $k>1?"s":"";
  
 
# sub to kill currently running instances of peerd
 
# sub to kill currently running instances of peerd
 
sub kp {
 
sub kp {
 
if ($k) {
 
if ($k) {
print "\n$qxps";
 
 
for (split /^/, $qxps) { qx(kill -9 $1) if /^.+?([0-9]{2,}).+?\d+:\d\d\s*(.+)/ }
 
for (split /^/, $qxps) { qx(kill -9 $1) if /^.+?([0-9]{2,}).+?\d+:\d\d\s*(.+)/ }
 +
print "\n$qxps$k instance$s killed.\n";
 
} else { print "Nothing to kill :-(\n" }
 
} else { print "Nothing to kill :-(\n" }
 
}
 
}
Line 27: Line 28:
 
# - lists currently running peerd's and exits
 
# - lists currently running peerd's and exits
 
if ($ARGV[0] eq 'l') {
 
if ($ARGV[0] eq 'l') {
if ($k) { print ("$qxps$k instance".($k>1?"s":"")." of peerd running.\n\n") }
+
if ($k) { print ("$qxps$k instance$s of peerd running.\n\n") }
 
else { print "There are no instances of peerd running.\n\n" }
 
else { print "There are no instances of peerd running.\n\n" }
 
exit;
 
exit;
Line 74: Line 75:
 
else {
 
else {
 
print "Compiled successfully!\n";
 
print "Compiled successfully!\n";
 +
# Kill running peers (kp) and start a new instance
 
kp;
 
kp;
# Start new instance
+
print "Starting new instance now...\n\n";
$k = $k?"$k instance".($k>1?"s":"")." killed, s":"S";
 
print $k."tarting new instance now...\n\n";
 
 
qx( /home/peerd/husk.bin Gir port=2012 );
 
qx( /home/peerd/husk.bin Gir port=2012 );
 
print qx($ps);
 
print qx($ps);
 
}
 
}

Revision as of 00:20, 23 July 2006

  1. !/usr/bin/perl

$wiki = "http://www.organicdesign.co.nz/wiki/index.php"; $ps = 'ps lx'; $grep = "$ps|egrep peerd[:]";

print "\n"; $qxps = [split /^/, qx($ps)]->[0].qx($grep); # adds column header $k = $#{[split /^/, $qxps]}; $s = $k>1?"s":"";

  1. sub to kill currently running instances of peerd

sub kp { if ($k) { for (split /^/, $qxps) { qx(kill -9 $1) if /^.+?([0-9]{2,}).+?\d+:\d\d\s*(.+)/ } print "\n$qxps$k instance$s killed.\n"; } else { print "Nothing to kill :-(\n" } }

  1. rp k
  2. - kills currently running peerd's and exits

if ($ARGV[0] eq 'k') { kp; exit; }

  1. rp l
  2. - lists currently running peerd's and exits

if ($ARGV[0] eq 'l') { if ($k) { print ("$qxps$k instance$s of peerd running.\n\n") } else { print "There are no instances of peerd running.\n\n" } exit; }

  1. rp c
  2. - compiles without syncing any files

if ($ARGV[0] ne 'c') {

# Sync files specified in args, or obtain a list of files from Benders fileSync list if ($#ARGV<0) { print "Retrieving 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; } # 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...\n"; $err = qx( gcc -lSDL -lSDL_image -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: There are errors or warnings!\nNothing killed or executed.\n\n" } else { print "Compiled successfully!\n"; # Kill running peers (kp) and start a new instance kp; print "Starting new instance now...\n\n"; qx( /home/peerd/husk.bin Gir port=2012 ); print qx($ps); }