[1/2] Add skript dep-tree.

Submitted by Robert Langhammer on Dec. 12, 2019, 7:19 p.m.

Details

Message ID 20191212191920.13820-1-rlanghammer@web.de
State Accepted
Headers show

Commit Message

Robert Langhammer Dec. 12, 2019, 7:19 p.m.
This script collects all fff-package dependencies.

Signed-off-by: Robert Langhammer <rlanghammer@web.de>
---
 tools/dep-tree | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100755 tools/dep-tree

--
2.20.1

Patch hide | download patch | download mbox

diff --git a/tools/dep-tree b/tools/dep-tree
new file mode 100755
index 0000000..f99d9a6
--- /dev/null
+++ b/tools/dep-tree
@@ -0,0 +1,39 @@ 
+#!/bin/bash
+
+builddir=./build
+[ -f selected_bsp ] && . selected_bsp
+# variant=$(cat selected_variant)
+feeds=$builddir/feeds
+feed=${1:-fff}
+
+tmpfile=$(mktemp)
+
+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 +)
+	for dep in $deps; do
+		echo "\"$pkg\" -> \"$dep\"" >> "$tmpfile"
+	done
+	for dep in $deps; do
+		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" ")
+
+# start tree
+for package in $defaults; do
+	write_deps "$package"
+done
+
+# write the gv file to stdout
+echo "digraph G {"
+sort "$tmpfile" | uniq | grep -v libc | grep -v libssp | grep -v libpthread | grep -v librt
+echo "}"
+rm "$tmpfile"
+
+
+# vim: ts=4
+

Comments

Fabian Blaese Dec. 14, 2019, 8:22 p.m.
Puh, dieses Makefile Parsen sieht ja gruselig aus..
Im Zweifel kann das aber denke ich dennoch in den tools Ordner.

Acked-by: Fabian Bläse <fabian@blaese.de>

On 12.12.19 20:19, Robert Langhammer wrote:
> This script collects all fff-package dependencies.
> 
> Signed-off-by: Robert Langhammer <rlanghammer@web.de>
> ---
>  tools/dep-tree | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100755 tools/dep-tree
> 
> diff --git a/tools/dep-tree b/tools/dep-tree
> new file mode 100755
> index 0000000..f99d9a6
> --- /dev/null
> +++ b/tools/dep-tree
> @@ -0,0 +1,39 @@
> +#!/bin/bash
> +
> +builddir=./build
> +[ -f selected_bsp ] && . selected_bsp
> +# variant=$(cat selected_variant)
> +feeds=$builddir/feeds
> +feed=${1:-fff}
> +
> +tmpfile=$(mktemp)
> +
> +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 +)
> +	for dep in $deps; do
> +		echo "\"$pkg\" -> \"$dep\"" >> "$tmpfile"
> +	done
> +	for dep in $deps; do
> +		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" ")
> +
> +# start tree
> +for package in $defaults; do
> +	write_deps "$package"
> +done
> +
> +# write the gv file to stdout
> +echo "digraph G {"
> +sort "$tmpfile" | uniq | grep -v libc | grep -v libssp | grep -v libpthread | grep -v librt
> +echo "}"
> +rm "$tmpfile"
> +
> +
> +# vim: ts=4
> +
> --
> 2.20.1
>
Fabian Blaese Dec. 24, 2019, 11:53 a.m.
applied