From: Matthew Wilcox <matthew@wil.cx>
To: 383219@bugs.debian.org
Cc: Roland Mas <lolando@debian.org>
Subject: index.aux generation
Date: Thu, 24 Aug 2006 08:55:10 -0600

Alioth needs to generate an index.aux file.  It'd be helpful if we had
an example script for doing this.  Here's the script used for
git.infradead.org (MIT licence, says its author):

--- cut ---
#!/bin/sh

cd /home
for a in * ; do [ -r $a/public_git ] && [ ! -d /home/git/users/$a ] && ln -s /home/$a/public_git /home/git/users/$a ; done

cd /home/git
find . -name 'HEAD' | grep ^[-./=+a-zA-Z0-9]*\$ | sed s:/HEAD\$:: | while read DIR ; do
        TREEUID=`stat -c %U $DIR`
        TREEUSERNAME=`grep ^$TREEUID: /etc/passwd | cut -f5 -d: | sed s/\ /+/`
        if [ "$TREEUSERNAME" = "" ]; then
                TREEUSERNAME=$TREEUID
        fi
        echo $DIR $TREEUSERNAME | sed s:/:%2F:g
done > /home/git/.index.aux.$$

mv /home/git/.index.aux.$$ /home/git/.index.aux

--- cut ---

I suspect Alioth wants something like (untested ...)

cd /srv/git.debian.org/git
ls */*/HEAD | grep ^[-./=+a-zA-Z0-9]*\$ | sed s:/HEAD\$:: | while read DIR ; do
        TREEUID=`stat -c %U $DIR`
        TREEUSERNAME=`XXX`
        if [ "$TREEUSERNAME" = "" ]; then
                TREEUSERNAME=$TREEUID
        fi
        echo $DIR $TREEUSERNAME | sed s:/:%2F:g
done > /srv/git.debian.org/.index.aux.$$

mv /srv/git.debian.org/.index.aux.$$ /srv/git.debian.org/.index.aux

where XXX would be how to turn a username into the name of a user.
I dunno how Alioth works; ldap or postgres db seem plausible answers.
