From owner-freebsd-current@FreeBSD.ORG Thu Jan 8 11:51:25 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3FBF016A4CE for ; Thu, 8 Jan 2004 11:51:25 -0800 (PST) Received: from ms-smtp-01-eri0.socal.rr.com (ms-smtp-01-qfe0.socal.rr.com [66.75.162.133]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3F73A43D39 for ; Thu, 8 Jan 2004 11:51:24 -0800 (PST) (envelope-from sean@mcneil.com) Received: from server.mcneil.com (cpe-66-75-176-109.socal.rr.com [66.75.176.109])i08JpJqG017694 for ; Thu, 8 Jan 2004 11:51:19 -0800 (PST) Received: from [66.75.176.109] (mcneil.com [66.75.176.109]) by server.mcneil.com (8.12.10/8.12.10) with ESMTP id i08JpIeU000921 for ; Thu, 8 Jan 2004 11:51:19 -0800 (PST) (envelope-from sean@mcneil.com) From: Sean McNeil To: freebsd-current@freebsd.org Content-Type: text/plain Message-Id: <1073591478.910.4.camel@server.mcneil.com> Mime-Version: 1.0 X-Mailer: Ximian Evolution 1.4.5 Date: Thu, 08 Jan 2004 11:51:18 -0800 Content-Transfer-Encoding: 7bit X-DCC-sonic.net-Metrics: server.mcneil.com 1156; Body=1 Fuz1=1 Fuz2=1 X-Mailman-Approved-At: Thu, 08 Jan 2004 14:10:14 -0800 Subject: devfs.conf support for wildcarded devices X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 19:51:25 -0000 I saw a previous post once on this, but I haven't seen support for wildcards implemented. I've gone ahead and tried what I think is a workable mechanism to support this. Please let me know if this would do what I think people are interested in (it does what I want ;) /etc/rc.d/devfs: #!/bin/sh # # $FreeBSD: src/etc/rc.d/devfs,v 1.6 2003/08/20 06:15:18 mtm Exp $ # # PROVIDE: devfs # REQUIRE: LOGIN # BEFORE: securelevel # KEYWORD: FreeBSD . /etc/rc.subr name="devfs" start_cmd='devfs_start' stop_cmd=':' devfs_start() { if [ -n "$devfs_system_ruleset" ]; then devfs_init_rulesets devfs_set_ruleset $devfs_system_ruleset /dev devfs_apply_ruleset $devfs_system_ruleset /dev fi read_devfs_conf } read_devfs_conf() { if [ -r /etc/devfs.conf ]; then cd /dev while read action devlist parameter; do for device in ${devlist}; do case "${action}" in l*) if [ -c ${device} -a ! -e ${parameter} ]; then ln -fs ${device} ${parameter} fi ;; o*) if [ -c ${device} ]; then chown ${parameter} ${device} fi ;; p*) if [ -c ${device} ]; then chmod ${parameter} ${device} fi ;; esac done done < /etc/devfs.conf fi } load_rc_config $name run_rc_command "$1"