Skip to content
Snippets Groups Projects
Select Git revision
  • af464144d1214dbf2a216eaf3b6216c56f06dee6
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-07-22
  • experimental-2025-07-22-base
  • experimental-2025-07-21
  • experimental-2025-07-21-base
  • experimental-2025-07-20
  • experimental-2025-07-20-base
  • experimental-2025-07-19
  • experimental-2025-07-19-base
  • experimental-2025-07-17
  • experimental-2025-07-17-base
  • experimental-2025-07-12
  • experimental-2025-07-12-base
  • experimental-2025-07-04
  • experimental-2025-07-04-base
  • experimental-2025-07-01
  • experimental-2025-07-01-base
  • experimental-2025-06-25
  • experimental-2025-06-25-base
  • experimental-2025-06-24
  • experimental-2025-06-24-base
41 results

depdot.sh

Blame
  • depdot.sh 964 B
    #!/usr/bin/env bash
    
    # Script to output the dependency graph of Gluon's packages
    # Limitations:
    #  * 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");"
    }
    
    print_package() {
    	local package="$1" depends="$2"
    	# shellcheck disable=SC2086
    	set -- $depends
    
    	print_node "$package"
    	for dep in "$@"; do
    		print_node "$dep"
    		print_dep "$package" "$dep"
    	done
    }
    
    make -C openwrt -s prepare-tmpinfo
    
    echo 'digraph G {'
    
    cat ./openwrt/tmp/info/.packageinfo-feeds_gluon_base_* | while read -r key value; do
    	case "$key" in
    	'Package:')
    		package="$value"
    		;;
    	'Depends:')
    		depends="${value//+/}"
    		;;
    	'@@')
    		print_package "$package" "$depends"
    		;;
    	esac
    done | sort -u
    
    popd >/dev/null
    
    echo '}'