1#!/bin/sh 2# $NetBSD: rcorder-visualize.sh,v 1.4 2009/04/15 23:03:34 joerg Exp $ 3# 4# Written by Joerg Sonnenberger. You may freely use and redistribute 5# this script. 6# 7# Simple script to show the dependency graph for rc scripts. 8# Output is in the dot(1) language and can be rendered using 9# sh rcorder-visualize | dot -T svg -o rcorder.svg 10# dot(1) can be found in graphics/graphviz in pkgsrc. 11 12rc_files=${*:-/etc/rc.d/*} 13 14{ 15echo ' digraph {' 16for f in $rc_files; do 17< $f awk ' 18/# PROVIDE: / { provide = $3 } 19/# REQUIRE: / { for (i = 3; i <= NF; i++) requires[$i] = $i } 20/# BEFORE: / { for (i = 3; i <= NF; i++) befores[$i] = $i } 21 22END { 23 print " \"" provide "\";" 24 for (x in requires) print " \"" provide "\"->\"" x "\";" 25 for (x in befores) print " \"" x "\"->\"" provide "\";" 26} 27' 28done 29echo '}' 30} 31