diff options
author | Roy Marples <roy@marples.name> | 2008-01-10 20:17:55 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-01-10 20:17:55 +0000 |
commit | 5aea880f8158945d2cc9390891de6af8ca0a9b28 (patch) | |
tree | bffe7803c879478bf2a3c5210d32988452986bb7 /etc.FreeBSD/rc.devd | |
parent | 22b7a12b6e1f55f536b9004dd78ab67e88deaf6a (diff) |
Move FreeBSD specific files to the new FreeBSD folders.
Diffstat (limited to 'etc.FreeBSD/rc.devd')
-rw-r--r-- | etc.FreeBSD/rc.devd | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/etc.FreeBSD/rc.devd b/etc.FreeBSD/rc.devd new file mode 100644 index 00000000..3073ce5e --- /dev/null +++ b/etc.FreeBSD/rc.devd @@ -0,0 +1,52 @@ +#!/bin/sh +# Copyright 2007 Roy Marples +# 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 AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS 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. + +# Inform RC that we are in the background and hotplugged +export IN_BACKGROUND=yes +export IN_HOTPLUG=yes + +getmedia() { + ifconfig "$1" | while read line; do + case "${line}" in + media:" "*) echo "${line}"; return;; + esac + done +} + +# Try and create an init script for network interfaces +if [ ! -e /etc/init.d/"$1" -a ! -e /usr/local/init.d/"$1" ]; then + base=${1%%.*} + if [ "${base}" = "net" ]; then + # We only create links for pyhsical interfaces + [ -n "$(getmedia ${1#*.})" ] || exit 1 + base="net.lo0" + fi + if [ -e /etc/init.d/"${base}" -a "${base}" != "$1" ]; then + ln -s "${base}" /etc/init.d/"$1" + fi +fi + +# Run the init script +exec /etc/init.d/"$1" "$2" |