[PATCH] gitweb: localhost placeholder parser for cloneurl file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi...

I just started to use gitweb and saw that there isn`t in the git-tree
of gitweb the feature of that link to the git url (wich we can see in
git.kernel.org:D - I didn`t understand it, was that changed/done only
for kernel.org?).
I also have a specific need. I work with my laptop and there I keep
some git repositories, these repositories are shared/published with
some coworkers but as it`s a notebook the network environment normally
changes depending where I`m, so I implemented a placeholder for
cloneurl file. Gitweb will change #localhost# by  server_name.

If your git repositories aren`t in your local machine or if your
gitweb is hosted in a specific server what you have to do (in fact
what you don`t have to do :D) is just not use it.

>From 32da24e1e18a1c5f32bfa0afdbcb6d0f2b0432f3 Mon Sep 17 00:00:00 2001
From: Leandro Dorileo <dorileo@xxxxxxxxxxxxxxxx>
Date: Sat, 28 Jul 2007 15:34:20 -0400
Subject: [PATCH] gitweb: localhost placeholder parser for cloneurl file

Implementation of a localhost placeholder parsing in git_get_project_url_list.
It`s useful in cases of gitweb being hosted in a work-station (like a notebook)
used in a local team development environment and, implementation of a git-url
link in the git project list body like in git.kernel.org.
---
 gitweb/gitweb.perl |   21 ++++++++++++++++++---
 1 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index b381692..281d823 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1471,7 +1471,16 @@ sub git_get_project_url_list {
 	my @git_project_url_list = map { chomp; $_ } <$fd>;
 	close $fd;

-	return wantarray ? @git_project_url_list : \@git_project_url_list;
+        if(wantarray){
+            for(my $i = 0; $i < @git_project_url_list; $i++){
+                if(index(@git_project_url_list[$i], "#localhost#") != -1){
+                    @git_project_url_list[$i] =~
s/#localhost#/server_name()/eg;
+                }
+            }
+            return @git_project_url_list;
+        }else{
+            return \@git_project_url_list;
+        }
 }

 sub git_get_projects_list {
@@ -3384,8 +3393,14 @@ sub git_project_list_body {
 		      $cgi->a({-href => href(project=>$pr->{'path'},
action=>"shortlog")}, "shortlog") . " | " .
 		      $cgi->a({-href => href(project=>$pr->{'path'},
action=>"log")}, "log") . " | " .
 		      $cgi->a({-href => href(project=>$pr->{'path'},
action=>"tree")}, "tree") .
-		      ($pr->{'forks'} ? " | " . $cgi->a({-href =>
href(project=>$pr->{'path'}, action=>"forks")}, "forks") : '') .
-		      "</td>\n" .
+		      ($pr->{'forks'} ? " | " . $cgi->a({-href =>
href(project=>$pr->{'path'}, action=>"forks")}, "forks") : '');
+
+                      my @url_list = git_get_project_url_list($pr->{'path'});
+                      if(@url_list != 0){
+                        print " | " . $cgi->a({-href => @url_list[0]}, "git");
+                      }
+
+		      print "</td>\n" .
 		      "</tr>\n";
 	}
 	if (defined $extra) {
-- 
1.5.2.4

-- 
Dorileo
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux