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

[RFC/PATCH] git-instaweb: added logo and favicon

From
Flavio Poletti <flavio@polettix.it>
Date
Jun 16, 2008, 02:46 UTC
Message-ID
<1213584391-29903-1-git-send-email-flavio@polettix.it>

Eye candy: logo and favicon are now included in the standard deployments for git-instaweb.

Signed-off-by: Flavio Poletti <flavio@polettix.it>
---

I probably need a little help here to figure out how to make this "portable". I've modified Makefile, but what when configure is called by the end user instead of relying on this streamline Makefile? I need some hints about where to look to make this patch more robust regarding this.

Any suggestion is welcome, of course.
 Makefile        |   17 +++++++++++++++--
 git-instaweb.sh |   28 ++++++++++++++++++++++++++--
 2 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/Makefile b/Makefile
index 1937507..1879a34 100644
--- a/Makefile
+++ b/Makefile
@@ -1104,8 +1104,16 @@ gitweb/gitweb.cgi: gitweb/gitweb.perl
 	chmod +x $@+ && \
 	mv $@+ $@
 
-git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
-	$(QUIET_GEN)$(RM) $@ $@+ && \
+git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css gitweb/git-logo.png gitweb/git-favicon.png
+	$(QUIET_GEN)$(RM) $@ $@+ $@+logo $@+fav && \
+	'$(PERL_PATH_SQ)' <gitweb/git-logo.png >$@+logo -l \
+	    -e 'binmode STDIN;' \
+	    -e 'while(read(STDIN,$$x,16))' \
+	    -e '{print unpack"H*",$$x}' && \
+	'$(PERL_PATH_SQ)' <gitweb/git-favicon.png >$@+fav -l \
+	    -e 'binmode STDIN;' \
+	    -e 'while(read(STDIN,$$x,16))' \
+	    -e '{print unpack"H*",$$x}' && \
 	sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
 	    -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
 	    -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
@@ -1113,8 +1121,13 @@ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
 	    -e '/@@GITWEB_CGI@@/d' \
 	    -e '/@@GITWEB_CSS@@/r gitweb/gitweb.css' \
 	    -e '/@@GITWEB_CSS@@/d' \
+	    -e '/@@GITWEB_LOGO@@/r $@+logo' \
+	    -e '/@@GITWEB_LOGO@@/d' \
+	    -e '/@@GITWEB_FAVICON@@/r $@+fav' \
+	    -e '/@@GITWEB_FAVICON@@/d' \
 	    -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
 	    $@.sh > $@+ && \
+	rm $@+logo $@+fav && \
 	chmod +x $@+ && \
 	mv $@+ $@
 
diff --git a/git-instaweb.sh b/git-instaweb.sh
index af0fde5..782256c 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -268,8 +268,32 @@ gitweb_css () {
 EOFGITWEB
 }
 
-gitweb_cgi "$GIT_DIR/gitweb/gitweb.cgi"
-gitweb_css "$GIT_DIR/gitweb/gitweb.css"
+hex2bin () {
+   "$PERL" -e '
+      binmode STDOUT;
+      while (<STDIN>) {
+         chomp;
+         print pack "H*", $_;
+      }
+   '
+}
+
+gitweb_favicon () {
+   hex2bin > "$1" <<\EOFGITFAVICON
+@@GITWEB_FAVICON@@
+EOFGITFAVICON
+}
+
+gitweb_logo () {
+   hex2bin > "$1" <<\EOFGITLOGO
+@@GITWEB_LOGO@@
+EOFGITLOGO
+}
+
+gitweb_cgi     "$GIT_DIR/gitweb/gitweb.cgi"
+gitweb_css     "$GIT_DIR/gitweb/gitweb.css"
+gitweb_favicon "$GIT_DIR/gitweb/git-favicon.png"
+gitweb_logo    "$GIT_DIR/gitweb/git-logo.png"
 
 case "$httpd" in
 *lighttpd*)
-- 
1.5.5.4
Next: Eric Wong
Message 1 of 2 in “git-instaweb: added logo and favicon”
  1. git-instaweb: added logo and faviconFlavio Poletti, Jun 16, 2008
  2. Eric WongJun 16, 2008

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.