Skip to content
Snippets Groups Projects
Select Git revision
  • 8c9e5596d17461db0333912b7e33993d9aa2e3f6
  • master default protected
  • leonard/prometheus-exporters
  • are/backbone-babel-bird
  • multiple-primary
  • multiple-primary-orig-are
  • nrb/ssh-key-reorg
  • nrb/inventory-restructure
  • nrb/backbone-bgp
  • revproxy-port8080-support
  • nrb/bb-babel
11 results

flake.nix

Blame
  • depdot.sh 844 B
    #!/bin/bash
    
    # Script to output the dependency graph of Gluon's packages
    # Limitations:
    #  * Works only if directory names and package names are the same (true for all Gluon packages)
    #  * Doesn't show dependencies through virtual packages correctly
    
    set -e
    shopt -s nullglob
    
    
    pushd "$(dirname "$0")/.." >/dev/null
    
    
    escape_name() {
    	echo -n "_$1" | tr -c '[:alnum:]' _
    }
    
    print_node () {
    	echo "$(escape_name "$1") [label=\"$1\", shape=box];"
    }
    
    print_dep() {
    	echo "$(escape_name "$1") -> $(escape_name "$2");"
    }
    
    echo 'digraph G {'
    
    for makefile in ./package/*/Makefile; do
    	dir="$(dirname "$makefile")"
    	package="$(basename "$dir")"
    
    	deps=$(grep -w DEPENDS "$makefile" | cut -d= -f2 | tr -d +)
    
    	print_node "$package"
    	for dep in $deps; do
    		print_node "$dep"
    		print_dep "$package" "$dep"
    	done
    done | sort -u
    
    popd >/dev/null
    
    echo '}'