beae89cd6d
* Add a nooutput function to be used instead of redirecting to /dev/null, because /dev/null might not exist early in the boot sequence. This should fix a bug in which the pax autodetection failed when used from init(8) with a read-only root file system without a /dev/null. * Move most of the main program into a new makedev_main function, to allow reuse by MAKEDEV.local. In MAKEDEV.local: * Use the new makedev_main function defined in MAKEDEV. This allows MAKEDEV.local to support all the options understood by MAKEDEV, instead of only a subset. This should fix a bug in which the setup() function could try to use pax mode even though that was previously not supported. In MAKEDEV.local man page: * Update list of command line options. * Don't explain all the options, just refer to MAKEDEV(8) man page. * Remove BUGS section now that all MAKEDEV options are supported by MAKEDEV.local.
91 lines
2.9 KiB
Bash
91 lines
2.9 KiB
Bash
#!/bin/sh -
|
|
# $NetBSD: MAKEDEV.local,v 1.12 2007/12/15 17:28:09 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
|
|
mkdev foo1 c 0 1 600
|
|
;;
|
|
|
|
*)
|
|
warn "$i: unknown device"
|
|
;;
|
|
|
|
esac
|
|
done
|
|
|
|
}
|
|
|
|
#
|
|
# MAIN: Figure out where MAKEDEV is; load MAKEDEV as a function library;
|
|
# then call makedev_main to do all the real work.
|
|
#
|
|
case "$0" in
|
|
*/*) MAKEDEV="${0%/*}/MAKEDEV" ;;
|
|
*) MAKEDEV="./MAKEDEV" ;;
|
|
esac
|
|
[ -f "${MAKEDEV}" ] || MAKEDEV="/dev/MAKEDEV"
|
|
|
|
MAKEDEV_AS_LIBRARY=1 . "${MAKEDEV}" || exit 1
|
|
|
|
makedev_main makedev_local ${1+"$@"}
|