Difference between revisions of "Rp"
From Organic Design wiki
m |
(fix for mac) |
||
| Line 18: | Line 18: | ||
$wiki = "http://www.organicdesign.co.nz/wiki/index.php"; | $wiki = "http://www.organicdesign.co.nz/wiki/index.php"; | ||
sub url { | sub url { | ||
| − | + | my $doc = shift; | |
| − | + | print "url: $doc\n"; | |
| − | + | return qx(curl -s $doc) unless $lwp; | |
| − | + | $doc = $client->request(HTTP::Request->new(GET=>$doc)); | |
| − | + | return $doc->content; | |
| + | } | ||
# Command to list running peerd's (or null for Win32) | # Command to list running peerd's (or null for Win32) | ||
if ($ux) { | if ($ux) { | ||
| − | + | $qxps = [split /^/, qx($ps)]->[0].qx($grep); # adds column header | |
| − | + | $k = $#{[split /^/, $qxps]}; | |
| − | + | $s = $k>1?'s':''; | |
| − | + | } else { $qxps = ''; } | |
# sub to kill currently running instances of peerd | # sub to kill currently running instances of peerd | ||
sub kp { | 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\n"; | |
| − | + | } else { print "Nothing to kill :-(\n\n" } | |
| − | + | } | |
# rp k | # rp k | ||
# - kills currently running peerd's and exits | # - kills currently running peerd's and exits | ||
if ($ux and $ARGV[0] eq 'k') { | if ($ux and $ARGV[0] eq 'k') { | ||
| − | + | kp; | |
| − | + | exit; | |
| − | + | } | |
# rp l | # rp l | ||
# - lists currently running peerd's and exits | # - lists currently running peerd's and exits | ||
if ($ux and $ARGV[0] eq 'l') { | if ($ux and $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; | |
| − | + | } | |
# rp c | # rp c | ||
| Line 58: | Line 59: | ||
if ($ux and $ARGV[0] ne 'c') { | if ($ux and $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 = url("$wiki?title=Bender/fileSync&xpath:view:"); | |
| − | + | $fileSync =~ s/<\/ul>.+$//ms; | |
| − | + | %articles = $fileSync =~ /<li>.+?title="(.+?)">(.+?)<\/a>/g; | |
| − | + | } | |
| − | + | else { | |
| − | + | print "Retrieving files specified in command line args...\n"; | |
| − | + | $articles{$_} = "/home/peerd/$_" for @ARGV; | |
| − | + | } | |
| − | + | # Retrieve each article in sync-list and save to specified filepath | |
| − | + | for my $article (keys %articles) { | |
| − | + | print "\t$article\n"; | |
| − | + | if (open FH, '>', $ux ? $articles{$article} : "$cwd/$article") { | |
| − | + | binmode FH; | |
| − | + | print FH url("$wiki?title=$article&action=raw")."\n"; | |
| − | + | close FH; | |
| − | + | } | |
| − | + | } | |
| − | + | } | |
# Don't do any compilation unless ux | # Don't do any compilation unless ux | ||
| Line 98: | Line 99: | ||
if ($err) { print "$err\n\nAborting: There are errors or warnings!\nNothing killed or executed.\n\n" } | if ($err) { print "$err\n\nAborting: There are errors or warnings!\nNothing killed or executed.\n\n" } | ||
else { | 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); | |
| − | + | } | |
Revision as of 06:15, 26 July 2006
- !/usr/bin/perl
print "\n";
- Get CWD and determine OS
use Cwd; our $cwd = cwd; our $ux = ($cwd =~ m/^\//); $ux ? $cwd = cwd : $cwd =~ s/\//\\/g; $cwd =~ s/\//\\/g unless $cwd =~ m/^\//; $cwd =~ s/[\\\/]$//g;
- Try and use LWP otherwise fallback to curl
eval 'use HTTP::Request'; $lwp = $@?1:0; eval 'use LWP::UserAgent'; $lwp = 0 if $@; $client = LWP::UserAgent->new( cookie_jar => {} ) if $lwp; $wiki = "http://www.organicdesign.co.nz/wiki/index.php"; sub url {
my $doc = shift;
print "url: $doc\n";
return qx(curl -s $doc) unless $lwp;
$doc = $client->request(HTTP::Request->new(GET=>$doc));
return $doc->content;
}
- Command to list running peerd's (or null for Win32)
if ($ux) {
$qxps = [split /^/, qx($ps)]->[0].qx($grep); # adds column header
$k = $#{[split /^/, $qxps]};
$s = $k>1?'s':;
} else { $qxps = ; }
- 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\n";
} else { print "Nothing to kill :-(\n\n" }
}
- rp k
- - kills currently running peerd's and exits
if ($ux and $ARGV[0] eq 'k') {
kp;
exit;
}
- rp l
- - lists currently running peerd's and exits
if ($ux and $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;
}
- rp c
- - compiles without syncing any files
if ($ux and $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 = url("$wiki?title=Bender/fileSync&xpath:view:");
$fileSync =~ s/<\/ul>.+$//ms;
%articles = $fileSync =~ /
- Don't do any compilation unless ux
- Compile husk and format output
- Execute compiled result if compiled without any problems



