tools/dep-tree: fix broken tool #126

Closed
rohammer wants to merge 1 commits from rohammer:dep-tree into master
1 changed files with 18 additions and 6 deletions

View File

@ -1,10 +1,20 @@
#!/bin/bash
usage() {
cat <<- EOF
usage: tools/dep-tree [variant] [variant]
If no parameter is given the selected-variant is used.
Possible variants: node layer3
To display the tree pipe it to dot:
tools/dep-tree | dot -Tx11
EOF
}
builddir=./build
[ -f selected_bsp ] && . selected_bsp
# variant=$(cat selected_variant)
variant=$(cat selected_variant)
Outdated
Review

Hmm. eval ist irgendwie immer gruselig..

Hmm. `eval` ist irgendwie immer gruselig..

Oh, ich wollte niemanden erschrecken!
Man koennte Adrians Vorschlag aufgreifen und die Varianten hard coden. Es wird ja nur im usage verwendet. Und so haeufig wird keine neue Variante dazu kommen.

Oh, ich wollte niemanden erschrecken! Man koennte Adrians Vorschlag aufgreifen und die Varianten hard coden. Es wird ja nur im usage verwendet. Und so haeufig wird keine neue Variante dazu kommen.
[ $# = 0 ] || variant="$@"
feeds=$builddir/feeds

Hatten wir nicht jüngst die Diskussion, dass "$@" in "$1" "$2" etc. expandiert wird?

Hatten wir nicht jüngst die Diskussion, dass "$@" in "$1" "$2" etc. expandiert wird?

Ja, hatten wir. Darum musste ich hier auch nicht lange ueberlegen.

Ja, hatten wir. Darum musste ich hier auch nicht lange ueberlegen.
feed=${1:-fff}
feed=fff
tmpfile=$(mktemp)
@ -12,7 +22,7 @@ write_deps() {
local deps
local dep
local pkg=$1
deps=$(awk -v RS="@@" "/Package: $pkg\\n/ { print }" "${feeds}/${feed}".index | grep ^Depends: | sed 's/Depends: //' | tr -d +)
deps=$(awk -v RS="@@" "/Package: $pkg\\n/ { print }" "${feeds}/${feed}".index | grep ^Depends: | sed 's/Depends: //' | tr -d +)
for dep in $deps; do
echo "\"$pkg\" -> \"$dep\"" >> "$tmpfile"
done
@ -20,9 +30,10 @@ write_deps() {
grep "Package:" "${feeds}/${feed}.index" | grep " $dep$" &> /dev/null && write_deps "$dep"
done
}
# find default packages
defaults=$(awk -v RS="@@" '/Default: y/ { print }' "${feeds}/${feed}.index" | grep Package: | cut -f2 -d" ")
for v in $variant; do
defaults="$defaults fff-variant-$v"
done
# start tree
for package in $defaults; do
write_deps "$package"
@ -32,6 +43,7 @@ done
echo "digraph G {"
sort "$tmpfile" | uniq | grep -v libc | grep -v libssp | grep -v libpthread | grep -v librt
echo "}"
[ -s $tmpfile ] || usage
rm "$tmpfile"