Two kludges to get Gitalist *running* on Strawberry Perl.
Dan Brook [Wed, 20 Jan 2010 15:13:20 +0000 (22:13 +0700)]
lib/Gitalist/Git/Object.pm
lib/Gitalist/Git/Repository.pm

index 4448790..6126ab2 100644 (file)
@@ -68,7 +68,8 @@ class Gitalist::Git::Object {
     }
 
     method _build_modestr {
-        return _mode_str($self->mode);
+       # XXX The POSIX constants make win32 sad :(
+        return eval { _mode_str($self->mode) } || '?rwxrwxrwx';
     }
 
     # via gitweb.pm circa line 1305
index eaefb94..d6fefae 100644 (file)
@@ -10,7 +10,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils {
     use List::MoreUtils qw/any zip/;
     use DateTime;
     use Encode qw/decode/;
-    use I18N::Langinfo qw/langinfo CODESET/;
+#    use I18N::Langinfo qw/langinfo CODESET/;
     use Gitalist::Git::Object::Blob;
     use Gitalist::Git::Object::Tree;
     use Gitalist::Git::Object::Commit;
@@ -241,7 +241,13 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils {
     }
 
     method _build_owner {
-        my ($gecos, $name) = map { decode(langinfo(CODESET), $_) } (getpwuid $self->path->stat->uid)[6,0];
+       # XXX No I18N::Langinfo & getpwuid make win32 sad :(
+        # my ($gecos, $name) = map { decode(langinfo(CODESET), $_) } (getpwuid $self->path->stat->uid)[6,0];
+       my ($gecos, $name) = do {
+           local $@;
+           my($g,$n) = eval { (getpwuid $self->path->stat->uid)[6,0] };
+           !$@ ? ($g,$n) : qw(OwenEr GroUp);
+       };
         $gecos =~ s/,+$//;
         return length($gecos) ? $gecos : $name;
     }