]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/commitdiff
Merge remote-tracking branch 'anarcat/dev/syslog_utf8'
authorJoey Hess <joey@kitenet.net>
Sun, 23 Feb 2014 18:09:51 +0000 (14:09 -0400)
committerJoey Hess <joey@kitenet.net>
Sun, 23 Feb 2014 18:09:51 +0000 (14:09 -0400)
1  2 
IkiWiki.pm

diff --combined IkiWiki.pm
index eb480969bd6fc0b72565a09fbb607a97fb94d52d,86c8508119fa203bd5ed372b777c6a1fe054e138..a254177f2d7a136a42c2c407111c7ef8576d6ab7
@@@ -14,7 -14,7 +14,7 @@@ use vars qw{%config %links %oldlinks %p
        %pagestate %wikistate %renderedfiles %oldrenderedfiles
        %pagesources %delpagesources %destsources %depends %depends_simple
        @mass_depends %hooks %forcerebuild %loaded_plugins %typedlinks
 -      %oldtypedlinks %autofiles};
 +      %oldtypedlinks %autofiles @underlayfiles $lastrev};
  
  use Exporter q{import};
  our @EXPORT = qw(hook debug error htmlpage template template_depends
@@@ -134,13 -134,6 +134,13 @@@ sub getsetup () 
                safe => 1,
                rebuild => 0,
        },
 +      only_committed_changes => {
 +              type => "boolean",
 +              default => 0,
 +              description => "enable optimization of only refreshing committed changes?",
 +              safe => 1,
 +              rebuild => 0,
 +      },
        rcs => {
                type => "string",
                default => '',
                safe => 0, # hooks into perl module internals
                rebuild => 0,
        },
 +      useragent => {
 +              type => "string",
 +              default => undef,
 +              example => "Wget/1.13.4 (linux-gnu)",
 +              description => "set custom user agent string for outbound HTTP requests e.g. when fetching aggregated RSS feeds",
 +              safe => 0,
 +              rebuild => 0,
 +      },
  }
  
  sub defaultconfig () {
@@@ -743,6 -728,7 +743,7 @@@ sub debug ($) 
  }
  
  my $log_open=0;
+ my $log_failed=0;
  sub log_message ($$) {
        my $type=shift;
  
                        Sys::Syslog::openlog('ikiwiki', '', 'user');
                        $log_open=1;
                }
-               return eval {
-                       Sys::Syslog::syslog($type, "[$config{wikiname}] %s", join(" ", @_));
+               eval {
+                       # keep a copy to avoid editing the original config repeatedly
+                       my $wikiname = $config{wikiname};
+                       utf8::encode($wikiname);
+                       Sys::Syslog::syslog($type, "[$wikiname] %s", join(" ", @_));
                };
+                 if ($@) {
+                     print STDERR "failed to syslog: $@" unless $log_failed;
+                     $log_failed=1;
+                     print STDERR "@_\n";
+                 }
+                 return $@;
        }
        elsif (! $config{cgi}) {
                return print "@_\n";
@@@ -1796,8 -1791,7 +1806,8 @@@ sub enable_commit_hook () 
  
  sub loadindex () {
        %oldrenderedfiles=%pagectime=();
 -      if (! $config{rebuild}) {
 +      my $rebuild=$config{rebuild};
 +      if (! $rebuild) {
                %pagesources=%pagemtime=%oldlinks=%links=%depends=
                %destsources=%renderedfiles=%pagecase=%pagestate=
                %depends_simple=%typedlinks=%oldtypedlinks=();
  
        foreach my $src (keys %$pages) {
                my $d=$pages->{$src};
 -              my $page=pagename($src);
 +              my $page;
 +              if (exists $d->{page} && ! $rebuild) {
 +                      $page=$d->{page};
 +              }
 +              else {
 +                      $page=pagename($src);
 +              }
                $pagectime{$page}=$d->{ctime};
                $pagesources{$page}=$src;
 -              if (! $config{rebuild}) {
 +              if (! $rebuild) {
                        $pagemtime{$page}=$d->{mtime};
                        $renderedfiles{$page}=$d->{dest};
                        if (exists $d->{links} && ref $d->{links}) {
        foreach my $page (keys %renderedfiles) {
                $destsources{$_}=$page foreach @{$renderedfiles{$page}};
        }
 +      $lastrev=$index->{lastrev};
 +      @underlayfiles=@{$index->{underlayfiles}} if ref $index->{underlayfiles};
        return close($in);
  }
  
@@@ -1919,7 -1905,6 +1929,7 @@@ sub saveindex () 
                my $src=$pagesources{$page};
  
                $index{page}{$src}={
 +                      page => $page,
                        ctime => $pagectime{$page},
                        mtime => $pagemtime{$page},
                        dest => $renderedfiles{$page},
                }
  
                if (exists $pagestate{$page}) {
 -                      foreach my $id (@plugins) {
 -                              foreach my $key (keys %{$pagestate{$page}{$id}}) {
 -                                      $index{page}{$src}{state}{$id}{$key}=$pagestate{$page}{$id}{$key};
 -                              }
 -                      }
 +                      $index{page}{$src}{state}=$pagestate{$page};
                }
        }
  
                }
        }
        
 +      $index{lastrev}=$lastrev;
 +      $index{underlayfiles}=\@underlayfiles;
 +
        $index{version}="3";
        my $ret=Storable::nstore_fd(\%index, $out);
        return if ! defined $ret || ! $ret;
@@@ -2309,7 -2295,6 +2319,7 @@@ sub useragent () 
        return LWP::UserAgent->new(
                cookie_jar => $config{cookiejar},
                env_proxy => 1,         # respect proxy env vars
 +              agent => $config{useragent},
        );
  }