Le TwiBlog

The one with Twidi

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 20 février 2008

Ignorer automatiquement certaines extensions dans subversion (.pyc de python, .*.swp de vim...)

A chaque svn status il n'est pas rare de voir un certains nombres de fichiers "temporaires" qui ne nous intéressent pas, et que nous aimerions bien voir disparaître définitivement.

Alors il existe bien sur la commande svn propset svn:ignore "*.pyc" le_rep mais il faut non seulement le faire pour chaque projet, mais en plus pour chaque répertoire.

Une solution plus simple, et globale, consiste à dire à svn de toujours ignorer les fichiers qui ne nous intéressent pas, ce dans notre fichier de configuration $HOME/.subversion/config (dans la section miscellany) :

global-ignores = *.pyc .*.swp

lundi 27 mars 2006

Un portable, plusieurs réseaux, sous Linux (debian / ubuntu)

J'utilise chez moi et au travail le même pc portable (que je trimballe, mais c'est pas lourd, ca fera l'objet d'un autre billet).

Or bien sur les réseaux sont différents

  • à la maison, wifi protégé en dhcp
  • au boulot, reseau ethernet sans dhcp
  • au boulot toujours, quand le reseau marche pas, le wifi du voisin, dhcp, non protégé

Le soucis : a chaque fois jouer avec les ifup, ifdown, changer le resolv.conf (car le dhcp ecrase le fichier, et le reseau sans dhcp a besoin qu'on spécifie les dns)

L'envie : une simple commande très courte à taper à chaque fois que j'ai besoin de changer de reseau.

La solution : deux paquets (debian) à installer : ifscheme et resolvconf

ifsheme se charge de gérer des profils réseaux. Quant à resolvconf, il se charge de gérer, comme son nom l'indique, le fichier resolv.conf

Configuration :

Auparavant, j'avais une zone du type "iface eth0 inet static" et une "iface ath0 inet dhcp" (ath0 c'est mon interface wifi), avec des lignes commentées, que je modifiais pour chaque changement. En effet, je trouvais ça plus rapide que d'utiliser les outils de gnome/kde pour gérer les profils réseaux. Et j'avais un fichier "resolv.conf.taf" que je copiais à la place de resolv.conf dès que j'arrivais au boulot.

Maintenant, voici ce que j'ai dans mon fichier /etc/network/interfaces (je saute le début du fichier concernant l0, et je remplace les infos (ip, cle...) par des lettres) :

mapping eth0
        script ifscheme-mapping
  
iface eth0-taf inet static
        address 192.168.xxx.yy
        netmask 255.255.255.0
        gateway 192.168.xxx.1
        dns-nameservers aa.bb.cc.dd ee.ff.gg.hh

mapping ath0
        script ifscheme-mapping
 
iface ath0-taf inet dhcp
  
iface ath0-home inet dhcp
        wireless-essid MONESSID
        wireless-key MACLEWEP

On le voit, pour eth0, je ne gère que le scheme (profil) "taf", alors que pour ath0 (wifi), je gère "taf" et "home". Les profils sont gérés par carte, en spécifiant interface-scheme, donc ath0-taf et ath0-home sont deux profils totalement séparés.

On remarquera la ligne dns-nameservers pour eth0-taf, où l'in indique les dns. Cette ligne est inutile pour les profils wifis car ils sont en dhcp.

Pour utiliser ces profils, il suffit d'utiliser en premier lieu la commande ifscheme nom-du-scheme, suivi du ifup de l'interface voulue.

Par exemple : ifscheme home; ifup ath0

C'est déjà très bien. Mais pour moi, cela faisait trop à taper.

Je me suis donc créé un petit script, que j'ai appelé "n" (pour network) et que j'ai placé dans mon répertoire ~/bin (répertoire placé dans le path grace à une configuration de mon bashrc).

Voici ce script "n"

#!/bin/sh

case "$1" in
        taf)
                sudo ifdown ath0
                sudo ifscheme taf
                sudo ifup eth0
        ;;

        taf2)
                sudo ifdown eth0
                sudo ifscheme taf
                sudo ifup ath0
        ;;

        home)
                sudo ifdown eth0
                sudo ifscheme home
                sudo ifup ath0
        ;;

        *)
        echo "Usage: n {taf|taf2|home}"
        exit 1
        ;;
esac

L'utilisation est alors ultra simple

  • n taf quand j'arrive au boulot
  • n taf2 quand je préfère utiliser la connexion wifi du boulot
  • n home quand j'arrive chez moi

C'est très simple et rapide.

Bien sûr, il existe d'autres solutions, notamment la reconnaissance et configuration/choix automatique du réseau (hotplug et consors), le choix du profil par interface graphique...

Je vous met ici ce qui m'a mis sur la piste de resolvconf et ifscheme, et qui propose tout un tas d'autres solutions : Banc d'essai : Un portable, plusieurs reseaux (probleme classique)

PS : pour faire marcher resolvconf, j'ai du effectuer une action lue dans la doc : remplacer le fichier /etc/resolv.conf par un lien symbolique vers /etc/resolvconf/run/resolv.conf