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

2 messages from 2008-06-16 to 2008-06-16. Participants: Flavio Poletti, Eric Wong.
Thread: https://gitlist.dev/t/13973

## Flavio Poletti, 2008-06-16 02:46

Subject: [RFC/PATCH] git-instaweb: added logo and favicon
Message-ID: <1213584391-29903-1-git-send-email-flavio@polettix.it>
URL: https://gitlist.dev/e/1213584391-29903-1-git-send-email-flavio%40polettix.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

```

## Eric Wong, 2008-06-16 03:13

Subject: Re: [RFC/PATCH] git-instaweb: added logo and favicon
Message-ID: <20080616031338.GI21299@hand.yhbt.net>
URL: https://gitlist.dev/e/20080616031338.GI21299%40hand.yhbt.net
In-Reply-To: <1213584391-29903-1-git-send-email-flavio@polettix.it>

```
Flavio Poletti <flavio@polettix.it> wrote:
> Eye candy: logo and favicon are now included in the standard
> deployments for git-instaweb.

I've personally always considered logos and icons to be useless
vanity items and a complete waste of pixels/bandwidth/space/memory.

Others are free to disagree with me but I'm not interested in
having this supported in instaweb.

-- 
Eric Wong

```
