git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] gitweb: localhost placeholder parser for cloneurl file

From
LDLeandro Dorileo <ldorileo@gmail.com>
Date
Jul 29, 2007, 06:54 UTC
Message-ID
<d68f80d90707282354l1593f2ctc0cf7a05eeb3b8e0@mail.gmail.com>
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@ossystems.com.br>
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
Next: Jakub Narebski
Message 1 of 2 in “gitweb: localhost placeholder parser for cloneurl file”
  1. gitweb: localhost placeholder parser for cloneurl fileLeandro Dorileo, Jul 29, 2007
  2. Jakub NarebskiJul 29, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.