User:ImplSearchBot/Code: Difference between revisions

Content added Content deleted
m (ImplSearchBot:0)
m (ImplSearchBot:0)
Line 24: Line 24:
# into logical chunks.
# into logical chunks.
#---------------------
#---------------------

# Called in a *lot* of places to check the machine for overload.
sub slumber
{
# Snooze.
while(&snooze) {};
}

# A reversed snooze buton
sub snooze
{
open my $loadavg, '<', '/proc/loadavg'
or die "Failed to check load average: $!";
my $loadstr = <$loadavg>;
close $loadavg;

# Wait one minute for every process in the wait queue.
my @avgs = split / +/, $loadstr;

my $sleeptime = 0;

# Sleep at least one minute for each process in the wait queue.
$sleeptime = $avgs[0] * 60;

print "Calculated sleeptime: $sleeptime\n";

# If we're currently under notable load
if($sleeptime > 30)
{
print "Load averages: " . join(' ', @avgs) . " ... Sleeping $sleeptime seconds";
sleep $sleeptime;
return $sleeptime;
}

return 0;
}


# Builds a simple hash ref associating a page name with body.
# Builds a simple hash ref associating a page name with body.
Line 30: Line 66:
sub build_posting
sub build_posting
{
{
&slumber;
my $name = shift;
my $name = shift;
my $body = shift;
my $body = shift;
Line 39: Line 76:
sub prep_unimp_posting
sub prep_unimp_posting
{
{
&slumber;
my $impldiff = shift;
my $impldiff = shift;
my $language = shift;
my $language = shift;
Line 75: Line 113:
sub prep_omit_posting
sub prep_omit_posting
{
{
&slumber;
my $implediff = shift;
my $implediff = shift;
my $language = shift;
my $language = shift;
Line 102: Line 141:
sub prep_listing_posting
sub prep_listing_posting
{
{
&slumber;
my $impldiff = shift;
my $impldiff = shift;
my $language = shift;
my $language = shift;
Line 137: Line 177:
sub prep_omit_cat_posting
sub prep_omit_cat_posting
{
{
&slumber;
my $implediff = shift;
my $implediff = shift;
my $language = shift;
my $language = shift;
Line 145: Line 186:
sub get_listing_name
sub get_listing_name
{
{
&slumber;
my $language = shift;
my $language = shift;
return "Tasks not implemented in $language";
return "Tasks not implemented in $language";
Line 152: Line 194:
sub get_omit_template_name
sub get_omit_template_name
{
{
&slumber;
my $language = shift;
my $language = shift;
return "unimp_omit_body_$language";
return "unimp_omit_body_$language";
Line 159: Line 202:
sub get_unimpl_template_name
sub get_unimpl_template_name
{
{
&slumber;
my $language = shift;
my $language = shift;
return "unimp_body_$language";
return "unimp_body_$language";
Line 166: Line 210:
sub get_omit_cat_name
sub get_omit_cat_name
{
{
&slumber;
my $language = shift;
my $language = shift;
return "Category:$language/Omit";
return "Category:$language/Omit";
Line 173: Line 218:
sub process_language
sub process_language
{
{
&slumber;
my $implediff = shift;
my $implediff = shift;
my $language = shift;
my $language = shift;
Line 194: Line 240:


sub wikitxt_pathname {
sub wikitxt_pathname {
&slumber;
my $page_name = $_[0];
my $page_name = $_[0];
"test/" . sanitizenamefs($page_name) . ".wikitxt";
"test/" . sanitizenamefs($page_name) . ".wikitxt";
Line 201: Line 248:
sub processimplediff
sub processimplediff
{
{
&slumber;
my $implediff = shift;
my $implediff = shift;
my %work;
my %work;
Line 221: Line 269:
sub geteditor
sub geteditor
{
{
&slumber;
# If we're not posting, and we're only drawing from cache
# If we're not posting, and we're only drawing from cache
# We don't actually need to pull from the wiki.
# We don't actually need to pull from the wiki.
Line 257: Line 306:
sub out
sub out
{
{
&slumber;
my $string = shift;
my $string = shift;
my $loglevel = shift;
my $loglevel = shift;
Line 282: Line 332:
sub sanitizenamefs
sub sanitizenamefs
{
{
&slumber;
my $pagename = shift;
my $pagename = shift;
$pagename =~ tr/:\//__/;
$pagename =~ tr/:\//__/;
Line 290: Line 341:
sub diffcat_simple
sub diffcat_simple
{
{
&slumber;
my $first = shift;
my $first = shift;
my $second = shift;
my $second = shift;
Line 308: Line 360:
sub diffcat
sub diffcat
{
{
&slumber;
my $first = shift;
my $first = shift;
my $second = shift;
my $second = shift;
Line 316: Line 369:


sub slurp_file {
sub slurp_file {
&slumber;
my $pathname = $_[0];
my $pathname = $_[0];
open(my $stream, "<", $pathname) or do {warn"Can't open '$pathname': $!\n";
open(my $stream, "<", $pathname) or do {warn"Can't open '$pathname': $!\n";
Line 332: Line 386:
sub postpage
sub postpage
{
{
&slumber;
my $pagename = shift;
my $pagename = shift;
my $pagedata = shift;
my $pagedata = shift;
Line 380: Line 435:
sub cachedata
sub cachedata
{
{
&slumber;
my $dataname = shift;
my $dataname = shift;
my $data = shift;
my $data = shift;
Line 404: Line 460:
sub getcacheddata
sub getcacheddata
{
{
&slumber;
my $dataname = shift;
my $dataname = shift;
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json");
my $filename = $options{'cachepath'} . &sanitizenamefs($dataname . ".json");
Line 429: Line 486:
sub reportcatchanges
sub reportcatchanges
{
{
&slumber;
my $category = shift;
my $category = shift;
my $old = shift;
my $old = shift;
Line 454: Line 512:
sub getcategory
sub getcategory
{
{
&slumber;
my $categoryname = shift;
my $categoryname = shift;
&out("Getting category contents for $categoryname...", 4);
&out("Getting category contents for $categoryname...", 4);
Line 471: Line 530:
$new = [$editor->get_pages_in_category($categoryname)];
$new = [$editor->get_pages_in_category($categoryname)];
++$categorypulls;
++$categorypulls;
sleep 1;
}
}
Line 486: Line 544:
sub getwork
sub getwork
{
{
&slumber;
my $categoryname = shift;
my $categoryname = shift;
&out("Getting work for $categoryname.\n",4);
&out("Getting work for $categoryname.\n",4);
Line 519: Line 578:
sub getloglevelfromdiff
sub getloglevelfromdiff
{
{
&slumber;
my $base = shift;
my $base = shift;
my $first = shift;
my $first = shift;
Line 530: Line 590:
sub getlangwork
sub getlangwork
{
{
&slumber;
my $language = shift;
my $language = shift;
&out("Getting lang work for $language\n", 4);
&out("Getting lang work for $language\n", 4);
Line 562: Line 623:
sub commitcache
sub commitcache
{
{
&slumber;
# First, find out if we've added any files.
# First, find out if we've added any files.
my $cachepath = $options{'cachepath'};
my $cachepath = $options{'cachepath'};
Line 596: Line 658:
sub svn
sub svn
{
{
&slumber;
return
return
if(exists $options{'nosvn'});
if(exists $options{'nosvn'});
Line 613: Line 676:


sub getopt {
sub getopt {
&slumber;
#I don't care to pollute my global scope.
#I don't care to pollute my global scope.
my $wiki = 'rosettacode.org';
my $wiki = 'rosettacode.org';
Line 689: Line 753:
sub main {
sub main {
&slumber;


unless (@ARGV) { @ARGV = @_; }
unless (@ARGV) { @ARGV = @_; }