Re: niveau de dépendance des paquets
On Thu, 14 Mar 2002, Romuald DELAVERGNE wrote:
> #!/bin/sh
>
> maxniv=0
> niveau=0
> tab=""
>
> ndep() {
> echo "${tab}$1 ($niveau)"
> tab=" $tab"
> for package in `apt-cache depends $1 | awk '/ Depends: / {print $2}'`;
> do
> [ "$package" = "$1" ] && continue
> niveau=$((niveau+1))
> [ $niveau -gt $maxniv ] && maxniv=$niveau
> ndep $package
> done
> tab=`echo "$tab" | cut -c 3-`
> niveau=$((niveau-1))
> }
>
> ndep $1
> echo -e "\nn($1)=${maxniv}"
> exit 0
>
>
> --
> To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
Voici la version modifiee, il n'est pas trop parfait, car il y a des
petites redondances, mais donne malgre tout une bonne idee :-)
Il n'est evidemment pas performant, a cause du for, qui continue de
verifier meme s'il a deja trouve. Je trouve cela laid de mettre un break
dans un for.. je vous laisse le loisir d'utiliser le while !
-----------------
#!/bin/sh
ok=1
pack=""
maxniv=0
niveau=0
tab=""
ndep() {
echo "${tab}$1 ($niveau)"
tab=" $tab"
for package in `apt-cache depends $1 | awk '/ Depends: / {print $2}'`;
do
for i in $pack
do
if [ "$i" == "$package" ]; then
ok=0
fi
done
pack="$pack ${package}"
[ "$package" = "$1" ] && continue
niveau=$((niveau+1))
[ $niveau -gt $maxniv ] && maxniv=$niveau
if [ $ok == 1 ]; then
ndep $package
fi
ok=1
done
tab=`echo "$tab" | cut -c 3-`
niveau=$((niveau-1))
}
ndep $1
echo -e "\nn($1)=${maxniv}"
exit 0
----------------------------------------------
Reply to: