Module Name: src
Committed By: jmcneill
Date: Sat Aug 6 12:29:39 UTC 2011
Modified Files:
src/etc: MAKEDEV.tmpl
Log Message:
add -u flag that causes the MAKEDEV script to only create a device node if it
doesn't exist
To generate a diff of this commit:
cvs rdiff -u -r1.139 -r1.140 src/etc/MAKEDEV.tmpl
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/etc/MAKEDEV.tmpl
diff -u src/etc/MAKEDEV.tmpl:1.139 src/etc/MAKEDEV.tmpl:1.140
--- src/etc/MAKEDEV.tmpl:1.139 Sat Jul 9 14:49:28 2011
+++ src/etc/MAKEDEV.tmpl Sat Aug 6 12:29:39 2011
@@ -1,5 +1,5 @@
#!/bin/sh -
-# $NetBSD: MAKEDEV.tmpl,v 1.139 2011/07/09 14:49:28 jmcneill Exp $
+# $NetBSD: MAKEDEV.tmpl,v 1.140 2011/08/06 12:29:39 jmcneill Exp $
#
# Copyright (c) 2003,2007,2008 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -310,7 +310,7 @@
usage()
{
cat 1>&2 << _USAGE_
-Usage: ${0##*/} [-fMs] [-m mknod] [-p pax] [-t mtree] special [...]
+Usage: ${0##*/} [-fMsu] [-m mknod] [-p pax] [-t mtree] special [...]
Create listed special devices. Options:
-f Force permissions to be updated on existing devices.
-M Create memory file system.
@@ -318,6 +318,7 @@
-p pax Name of pax(1) program. [\$TOOL_PAX or pax]
-s Generate mtree(8) specfile instead of creating devices.
-t mtree Name of mtree(8) program. [\$TOOL_MTREE or mtree]
+ -u Don't re-create devices that already exist.
_USAGE_
exit 1
@@ -425,8 +426,9 @@
do_mtree=false
do_redirect=false
do_specfile=false
+ do_update=false
opts=
- while getopts Mfm:p:st: ch; do
+ while getopts Mfm:p:st:u ch; do
# Note that $opts is only for options pased through to
# MAKEDEV.local, not for all options.
case ${ch} in
@@ -468,6 +470,10 @@
do_mknod=true
fi
;;
+ u)
+ do_update=true
+ opts="${opts} -u"
+ ;;
*) usage ;;
esac
done
@@ -524,6 +530,11 @@
do_mknod=true
fi
+ # do_force and do_update do not work together
+ if $do_force && $do_update; then
+ die "-f and -u options do not work together"
+ fi
+
# If no explicit method was specified on the command line or
# forced above, then use one of mtree, pax, or mknod, in that
# order of preference.
@@ -663,6 +674,9 @@
count_nodes=$((count_nodes + 1))
return
fi
+ if $do_update && test -e $1; then
+ return
+ fi
if $do_specfile; then
case $2 in
b) type=block ;;
@@ -680,6 +694,9 @@
count_nodes=$((count_nodes + 1))
return
fi
+ if $do_update && test -e $2; then
+ return
+ fi
if $do_specfile; then
echo "./$2 type=link link=$1 mode=0700 gid=$g_wheel uid=$u_root"
else
@@ -693,6 +710,9 @@
count_nodes=$((count_nodes + 1))
return
fi
+ if $do_update && test -e $1; then
+ return
+ fi
if $do_specfile; then
echo "./$1 type=dir mode=$2 gid=$g_wheel uid=$u_root"
else