PyGitWeb – news :)

Suite au précédent article sur PyGitWeb, j’ai continué de travailler dessus… Et ça commence à ressembler à quelque chose! :)

Dorénavant, PyGitWeb génère une page au format xHTML. Elle est générée à partir d’un template. Elle supporte les thèmes via une feuille CSS.

Sur la vue principale PyGitWeb affiche juste le dernier commit de tous les dépôts. Si des modifications non commitées existent, un lien vers le diff apparait.

PyGitWeb (diff masked)

PyGitWeb (diff masked)

Lorsque l’on clique sur le lien vers le diff, on affiche uniquement le dépôt concerné et en dessous le diff :

PyGitWeb (displaying diff)

PyGitWeb (displaying diff)

Il me reste quelques petites fonctionalités à ajouter et le code à nettoyer puis je poste la version 0.1… Ah j’oubliai il me faut aussi un logo!

Stay tuned! :)

Manual upgrade of lighttpd on Debian Lenny

Debian c’est bien parce que c’est stable (encore que mon serveur s’est vautré ce weekend à cause de grub!) mais si vous utilisez Lighttpd, vous n’avez pas les mises à jour de sécurité! Même la version dans Sid est obsolète!!!

Cependant, comment installer une nouvelle version de Lighttpd sans chambouler votre Lenny et en gardant les scripts de démarrage et fichiers de configuration?

La solution propre :

On télécharge le tarball de Lighttpd :

> jpec@server:~$ wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.26.tar.gz

On le décompresse :

> jpec@server:~$ tar xzvf lighttpd-1.4.26.tar.gz
> jpec@server:~$ cd lighttpd-1.4.26/

On installe les dépendances :

> jpec@server:~$ sudo apt-get install libpcre3-dev  libbz2-dev

On compile et installe l’éxécutable :

> jpec@server:~$ ./configure
> jpec@server:~$ make
> jpec@server:~$ sudo make install

On modifie le fichier /etc/init.d/lighttpd pour mettre à jour le lien vers l’éxécutable :

PATH=/sbin:/bin:/usr/sbin:/usr/bin
#DAEMON=/usr/sbin/lighttpd      # JPEC -- Suppression version debian
DAEMON=/usr/local/sbin/lighttpd # JPEC ++ Utilisation version compilée
NAME=lighttpd

Et on relance le serveur web !

PyGitWeb – a python web git browser

Contexte

J’aime bien Git.

C’est le système de versionning/gestion de sources décentralisé créé par Linus Torvalds (le créateur de Linux pour les incultes!). Cependant, à l’inverse de Mercurial, il ne propose pas par défaut un serveur web pour naviguer dans les sources et les versions. Il y a bien des CGIs (gitweb et autres) pour combler ce manque mais ils sont tous trop lourds et complexes à mettre en oeuvre à mon goût.

Comme je désire avoir un moyen simple de naviguer (en lecture seule) dans plusieurs dépôts git sur mon serveur, j’ai décidé de coder mon propre outil : PyGitWeb.

Technologie

J’avais le choix de coder mon outil en PHP, Perl, Ruby ou Python et c’est ce dernier que j’ai choisit. Le serveur http est Lighttpd qui appelle l’interpréteur Python.

Fonctionnalités désirées

L’objectif d’avoir une page web (http://server/git/ par exemple) qui permet d’afficher tous les dépôts présents sur le serveur. On doit ensuite pouvoir aller consulter les commits, les versions, et les diffs/patchs. Pour finir, j’ajouterai une génération des tarballs pour chaque version.

Après 2 heures de réflexion, voici une ébauche (cliquez sur l’image pour agrandir) :

PyGitWeb

PyGitWeb

Sur cette ébauche, le programme va créer des instances Git pour chaque dépôts paramétrés. Il affiche une liste des dépôts et leur dernier commit. Je dois maintenant ajouter la gestion des liens et de la méthode GET pour le programme (pour passer les paramètres via l’URL). Aussi, la page est actuellement au format texte et il faut que je bascule au format xhtml.

Screenshots de la semaine

DWM clean

DWM mutt in tmux

DWM mutt in tmux

DWM chromium

DWM chromium

Mon dépot mercurial pour DWM : http://server.julienpecqueur.com:10000/.

Coup de coeur musical de la semaine