68723a5b5f
human procedures) breaking because they assume it's enough to copy MAKEDEV fom one place to another. Let MAKEDEV return after defining shell functions but before doing any real work, if MAKEDEV_AS_LIBRARY is set. Let MAKEDEV.local load MAKEDEV as a function library via "MAKEDEV_AS_LIBRARY=1 . MAKEDEV".
94 lines
3.0 KiB
Bash
94 lines
3.0 KiB
Bash
#!/bin/sh -
|
|
# $NetBSD: MAKEDEV.local,v 1.11 2007/03/03 06:36:00 apb Exp $
|
|
#
|
|
# Copyright (c) 2007 The NetBSD Foundation, Inc.
|
|
# 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.
|
|
# 3. All advertising materials mentioning features or use of this software
|
|
# must display the following acknowledgement:
|
|
# This product includes software developed by the NetBSD
|
|
# Foundation, Inc. and its contributors.
|
|
# 4. Neither the name of The NetBSD Foundation nor the names of its
|
|
# contributors may be used to endorse or promote products derived
|
|
# from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
|
|
#
|
|
###########################################################################
|
|
#
|
|
# MAKEDEV.local can be customised to create site-specific device nodes.
|
|
# By default it does nothing, except parse and accept the same command
|
|
# line options as MAKEDEV.
|
|
#
|
|
# "MAKEDEV all" or "MAKEDEV local" will invoke "MAKEDEV.local all";
|
|
# MAKEDEV.local may also be invoked directly with other args.
|
|
|
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/rescue
|
|
|
|
# makedev_local special [...]
|
|
# the main loop
|
|
#
|
|
makedev_local()
|
|
{
|
|
|
|
for i
|
|
do
|
|
|
|
case $i in
|
|
|
|
all)
|
|
# Customise this. For example:
|
|
#makedev_local foo
|
|
;;
|
|
|
|
# Add more cases here. You can call functions defined in MAKEDEV.
|
|
# For example:
|
|
#foo)
|
|
# mkdev foo c 0 0 600
|
|
# ;;
|
|
|
|
*)
|
|
warn "$i: unknown device"
|
|
;;
|
|
|
|
esac
|
|
done
|
|
|
|
}
|
|
|
|
#
|
|
# MAIN: Figure out where MAKEDEV is; load MAKEDEV as a function library;
|
|
# call the setup function to parse command line args and set some other
|
|
# variables; then call the makedev_local function to create requested
|
|
# devices.
|
|
#
|
|
case "$0" in
|
|
*/*) MAKEDEV="${0%/*}/MAKEDEV" ;;
|
|
*) MAKEDEV="./MAKEDEV" ;;
|
|
esac
|
|
[ -f "${MAKEDEV}" ] || MAKEDEV="/dev/MAKEDEV"
|
|
|
|
MAKEDEV_AS_LIBRARY=1 . "${MAKEDEV}" || exit 1
|
|
|
|
setup ${1+"$@"}
|
|
shift $((${OPTIND}-1))
|
|
makedev_local ${1+"$@"}
|