about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2016-07-01 02:09:45 +0000
committerEric Wong <e@80x24.org>2016-07-01 02:14:10 +0000
commit52052329acedddc0082487283a5a0390a8c86602 (patch)
treea8da1e82f2f54a69813c252d9fe90564133945e3
parent79bf257cbc4e188992f540d6b4ae1bd5cbcf26ee (diff)
downloadpublic-inbox-52052329acedddc0082487283a5a0390a8c86602.tar.gz
This means we can still show non-git users a somewhat browseable
URL with a link to the README.html file while allowing git users
to type less when cloning.

All of the following are supported:

git clone https://public-inbox.org/ public-inbox
git clone https://public-inbox.org/public-inbox
git clone https://public-inbox.org/public-inbox.git
torsocks git clone http://ou63pmih66umazou.onion/public-inbox
-rw-r--r--Documentation/dc-dlvr-spam-flow.txt2
-rw-r--r--README2
-rw-r--r--examples/public-inbox.psgi4
-rw-r--r--lib/PublicInbox/GitHTTPBackend.pm2
-rw-r--r--lib/PublicInbox/WwwStream.pm4
5 files changed, 8 insertions, 6 deletions
diff --git a/Documentation/dc-dlvr-spam-flow.txt b/Documentation/dc-dlvr-spam-flow.txt
index d151d272..81aba766 100644
--- a/Documentation/dc-dlvr-spam-flow.txt
+++ b/Documentation/dc-dlvr-spam-flow.txt
@@ -45,4 +45,4 @@ delivery path as well as removing the message from the git tree.
 * spamc / spamd - SpamAssassin: http://spamassassin.apache.org/
 
 * report-spam / dc-dlvr - distributed with public-inbox in the scripts/
-  directory: git clone https://public-inbox.org/public-inbox.git
+  directory: git clone https://public-inbox.org/ public-inbox
diff --git a/README b/README
index ca4e2a86..f56d68d2 100644
--- a/README
+++ b/README
@@ -87,7 +87,7 @@ Hacking
 
 Source code is available via git:
 
-        git clone https://public-inbox.org/public-inbox.git
+        git clone https://public-inbox.org/ public-inbox
 
 See below for contact info.
 
diff --git a/examples/public-inbox.psgi b/examples/public-inbox.psgi
index a90a2bc3..11e2a6e7 100644
--- a/examples/public-inbox.psgi
+++ b/examples/public-inbox.psgi
@@ -47,7 +47,9 @@ builder {
         sub {
                 my ($env) = @_;
                 # share public-inbox.git code!
-                if ($src && $env->{PATH_INFO} =~ m!\A/public-inbox\.git/(.*)!) {
+                if ($src && $env->{PATH_INFO} =~
+                                m!\A/(?:public-inbox(?:\.git)?/)?
+                                ($PublicInbox::GitHTTPBackend::ANY)\z!xo) {
                         PublicInbox::GitHTTPBackend::serve($env, $src, $1);
                 } else {
                         $www->call($env);
diff --git a/lib/PublicInbox/GitHTTPBackend.pm b/lib/PublicInbox/GitHTTPBackend.pm
index 4f58c6bb..b4851920 100644
--- a/lib/PublicInbox/GitHTTPBackend.pm
+++ b/lib/PublicInbox/GitHTTPBackend.pm
@@ -23,7 +23,7 @@ my @binary = qw!
         objects/pack/pack-[a-f0-9]{40}\.(?:pack|idx)
         !;
 
-our $ANY = join('|', @binary, @text);
+our $ANY = join('|', @binary, @text, 'git-upload-pack');
 my $BIN = join('|', @binary);
 my $TEXT = join('|', @text);
 
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index 97a6dc78..87a461e1 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -7,7 +7,7 @@ use strict;
 use warnings;
 use PublicInbox::Hval qw(ascii_html);
 use URI;
-use constant PI_URL => 'https://public-inbox.org/public-inbox.git';
+use constant PI_URL => 'https://public-inbox.org/';
 
 sub new {
         my ($class, $ctx, $cb) = @_;
@@ -87,7 +87,7 @@ sub _html_end {
                 '- ' . $desc,
                 $urls,
                 'Archived served using code from public-inbox:',
-                "\tgit clone $url",
+                "\tgit clone <a\nhref="$url">$url</a> public-inbox",
         ).'</pre></body></html>';
 }