Difference between revisions of "Rp"
From Organic Design wiki
(elsif on perl not elseif) |
m |
||
Line 90: | Line 90: | ||
# Compile husk and format output | # Compile husk and format output | ||
print "\nCompiling..."; | print "\nCompiling..."; | ||
− | if($darwin) { | + | if ($darwin) { |
print " for darwin\n"; | print " for darwin\n"; | ||
$err = qx( gcc -I/Library/Frameworks/SDL.framework/Headers -I/Library/Frameworks/SDL_image.framework/Headers husk.c SDLmain.m -framework SDL -framework SDL_image -framework Cocoa 2>&1 ); | $err = qx( gcc -I/Library/Frameworks/SDL.framework/Headers -I/Library/Frameworks/SDL_image.framework/Headers husk.c SDLmain.m -framework SDL -framework SDL_image -framework Cocoa 2>&1 ); | ||
} | } | ||
− | elsif($win32) { | + | elsif ($win32) { |
print " for win32\n"; | print " for win32\n"; | ||
$err = qx( gcc -I/usr/include/SDL -lGL -lGLU -lSDL -lpthread -lSDL_image -o /home/peerd/peerd.bin /home/peerd/peerd.c 2>&1 ); | $err = qx( gcc -I/usr/include/SDL -lGL -lGLU -lSDL -lpthread -lSDL_image -o /home/peerd/peerd.bin /home/peerd/peerd.c 2>&1 ); | ||
} | } | ||
− | elsif($linux) { | + | elsif ($linux) { |
print " for linux\n"; | print " for linux\n"; | ||
$err = qx( gcc -I/usr/include/SDL -lGL -lGLU -lSDL -lpthread -lSDL_image -o /home/peerd/peerd.bin /home/peerd/peerd.c 2>&1 ); | $err = qx( gcc -I/usr/include/SDL -lGL -lGLU -lSDL -lpthread -lSDL_image -o /home/peerd/peerd.bin /home/peerd/peerd.c 2>&1 ); | ||
} | } | ||
− | else { | + | else { print " failed. Could not determine host system type.\n" } |
− | |||
− | |||
Revision as of 06:49, 21 August 2006
- !/usr/bin/perl
- [[[[1]]]] - nodal p2p wiki daemon
- Syncronises, compiles and runs [[peerd.c]]
- This article and all its includes are licenced under LGPL
- GPL: [[[[2]]]]
- SRC: [[[[3]]]]
- Determine OS
our $ux = ($^O eq 'linux'); our $darwin = ($^O eq 'darwin'); our $win32 = ($^O eq 'MSWin32');
print "\n"; use Cwd; our $cwd = cwd; $ps = 'ps x';
- Try and use LWP otherwise fallback to curl
eval 'use HTTP::Request'; $lwp = $@?0:1; 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; 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($ps|egrep peerd[:]); # 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 ($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 =~ /
- Compile husk and format output
- Execute compiled result if compiled without any problems