Date: Tue, 06 Dec 2016 09:30:15 -0800 From: Ravi Pokala <rpokala@mac.com> To: Eric van Gyzen <vangyzen@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r309625 - head/sbin/rcorder Message-ID: <D3F01801-07D7-4218-8ED7-E2D3ED9EE8D7@panasas.com> In-Reply-To: <201612061549.uB6Fndxo044249@repo.freebsd.org> References: <201612061549.uB6Fndxo044249@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
For grins, I ran this on my build server. The resulting graph is... complex= . But one thing was immediately clear: neither /etc/rc.d/dhclient and /etc/r= c.d/natd depend on anything. That seems wrong: I would expect them to have s= ome sort of dependency on NETWORKING, either BEFORE (since dhclient may be i= nvolved in bringing up the network) or REQUIRE (since it doesn=E2=80=99t make sens= e to run a networking daemon like natd before networking is up). Or am I missing something? Thanks, Ravi (rpokala@) -----Original Message----- From: <owner-src-committers@freebsd.org> on behalf of Eric van Gyzen <vangy= zen@FreeBSD.org> Date: 2016-12-06, Tuesday at 07:49 To: <src-committers@freebsd.org>, <svn-src-all@freebsd.org>, <svn-src-head@= freebsd.org> Subject: svn commit: r309625 - head/sbin/rcorder Author: vangyzen Date: Tue Dec 6 15:49:39 2016 New Revision: 309625 URL: https://svnweb.freebsd.org/changeset/base/309625 Log: Add rcorder-visualize.sh, which generates graphviz from rc.d scripts =20 This is imported from NetBSD. The author--Joerg Sonnenberger--agreed to apply a two-clause BSD license, just so the license was clear. =20 This source tree location matches NetBSD, and is the first place someone might look for such a tool. =20 Obtained from: Joerg Sonnenberger via NetBSD MFC after: 3 days Sponsored by: Dell EMC Added: head/sbin/rcorder/rcorder-visualize.sh (contents, props changed) Added: head/sbin/rcorder/rcorder-visualize.sh =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sbin/rcorder/rcorder-visualize.sh Tue Dec 6 15:49:39 2016 (r30962= 5) @@ -0,0 +1,52 @@ +#!/bin/sh +# $NetBSD: rcorder-visualize.sh,v 1.5 2009/08/09 17:08:53 apb Exp $ +# +# Copyright (c) 2009 by Joerg Sonnenberger +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIE= S +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE= , +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# $FreeBSD$ +# +# Simple script to show the dependency graph for rc scripts. +# Output is in the dot(1) language and can be rendered using +# sh rcorder-visualize | dot -T svg -o rcorder.svg +# dot(1) can be found in graphics/graphviz in pkgsrc. + +rc_files=3D${*:-/etc/rc.d/*} + +{ +echo ' digraph {' +for f in $rc_files; do +< $f awk ' +/# PROVIDE: / { provide =3D $3 } +/# REQUIRE: / { for (i =3D 3; i <=3D NF; i++) requires[$i] =3D $i } +/# BEFORE: / { for (i =3D 3; i <=3D NF; i++) befores[$i] =3D $i } + +END { + print " \"" provide "\";" + for (x in requires) print " \"" provide "\"->\"" x "\";" + for (x in befores) print " \"" x "\"->\"" provide "\";" +} +' +done +echo '}' +}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D3F01801-07D7-4218-8ED7-E2D3ED9EE8D7>