Archive for the ‘Archlinux’ Category.

PyGitWeb v0.1 is released !

Ça y est la première release de PyGitWeb est sortie!

Il s’agit de la version 0.1.

Elle est stable mais ne propose qu’un nombre limité de fonctionalités.

Fonctionalités :

  • Vue principale :

On affiche la liste des dépôts du serveur avec leur dernier commit. Si on clique sur l’un des dépôt on ouvre la vue vue détaillée du dépôt.

  • Vue détaillé d’un dépôt :

On affiche un menu sous le dernier commit. Ce menu permet d’aller dans le répertoire du dépôt (pratique si c’est un site web), d’afficher la liste des commits et leurs détails, et d’afficher le diff s’il y a eu des modifications depuis le dernier commit.

Démo et download :

Si vous voulez le tester ou le télécharger (lien en bas de la page) : http://pygitweb.julienpecqueur.com.

PyGitWeb – relooking :)

Mise à jour du theme de PyGitWeb et de l’ergonomie…

L’index :

Liste des dépôts

Liste des dépôts

Le détail d’un dépôt Git :

Détails du dépôt

Détails du dépôt

L’historique des commits :

Liste de tous les commits

Liste de tous les commits

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!

Lien vers démo PyGitWeb : http://pygitweb.julienpecqueur.com.

Stay tuned for next episode ! :)

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.