2008/08/25

ZSH les ports et l'arbre de dépendances

voila un petit script zsh qui permet d'afficher sous la forme d'un arbre l'ensemble des dépendances d'un ports donné, je trouve ça très pratique lorsque l'on crée un nouveau ports pour pouvoir vérifier ces dépendances, ou lorsque l'on est sur le point d'installer un ports pour affiner son installation en voyant qu'elle dépendance installe qu'elle dépendance.

Cerise sur le gâteau, comme ce script fait des appels make pour récupérer la liste des dépendance, il prends en compte les options et les knobs que vous avez pu choisir.

#!/usr/bin/env zsh
PORTSDIR=$(make -V PORTSDIR)
function showdep() {
    local level=$1
    cd $2
    all_dep=(${${=${(f)"$(make -V BUILD_DEPENDS)"}}#*:} ${${=${(f)"$(make -V LIB_DEPENDS)"}}#*:} ${${=${(f)"$(make -V RUN_DEPENDS)"}}#*:})
    for dep (${(ou)all_dep}){
        repeat $level print -n "  "
        print ${dep//${PORTSDIR}\//}
        (( newlevel = level + 1 ))
        showdep $newlevel $dep
    }
}
showdep 0 "."

Name :
URL (optional) :
Write here: "ETOOMUCHSPAM"
Comments :