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"; |
|||
⚫ | |||
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; |
||
⚫ | |||
} |
} |
||
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 = @_; } |