summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--distrib/miniroot/install.sh35
-rw-r--r--distrib/miniroot/install.sub32
2 files changed, 32 insertions, 35 deletions
diff --git a/distrib/miniroot/install.sh b/distrib/miniroot/install.sh
index 57a22686660..007d02468e8 100644
--- a/distrib/miniroot/install.sh
+++ b/distrib/miniroot/install.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# $OpenBSD: install.sh,v 1.96 2002/04/20 13:42:52 krw Exp $
+# $OpenBSD: install.sh,v 1.97 2002/04/26 02:14:23 krw Exp $
# $NetBSD: install.sh,v 1.5.2.8 1996/08/27 18:15:05 gwr Exp $
#
# Copyright (c) 1997-2002 Todd Miller, Theo de Raadt, Ken Westerback
@@ -137,26 +137,33 @@ __EOT
# also allow a way to enter non-BSD partitions (but don't newfs!)
# Get the list of BSD partitions and store sizes
_npartitions=0
- for _p in `disklabel ${DISK} 2>&1 | grep '^ *[a-p]:.*BSD' | sed 's/^ *\([a-p]\): *\([0-9][0-9]*\) .*/\1\2/'`; do
- _pp=`firstchar ${_p}`
- if [ "${DISK}" = "${ROOTDISK}" -a "$_pp" = "a" ]; then
- continue
- fi
- _ps=`echo ${_p} | sed 's/^.//'`
- _partitions[${_npartitions}]=${_pp}
- _psizes[${_npartitions}]=${_ps}
+
+ # XXX - It would be nice to just pipe the output of sed to a
+ # 'while read _pp _ps' loop, but our 'sh' runs the last
+ # element of a pipeline in a subshell and the required side
+ # effects to _partitions, _npartitions, etc. would be lost.
+ for _p in $(disklabel ${DISK} 2>&1 | sed -ne '/^ *\([a-p]\): *\([0-9][0-9]*\).*BSD.*/s//\1\2/p'); do
+ # All characters after the initial [a-p] are the partition size
+ _ps=${_p#?}
+ # Removing the partition size leaves us with the partition name
+ _pp=${_p%${_ps}}
+
+ [ "$DISK" = "$ROOTDISK" -a "$_pp" = "a" ] && continue
+
+ _partitions[$_npartitions]=$_pp
+ _psizes[$_npartitions]=$_ps
# If the user assigned a mount point, use it.
- if [ -f /tmp/fstab.${DISK} ]; then
- _mount_points[${_npartitions}]=`sed -n "s:^/dev/$DISK$_pp[ ]*\([^ ]*\).*:\1:p" < /tmp/fstab.${DISK}`
+ if [ -f /tmp/fstab.$DISK ]; then
+ _mount_points[$_npartitions]=`sed -n "s:^/dev/${DISK}${_pp}[ ]*\([^ ]*\).*:\1:p" < /tmp/fstab.${DISK}`
fi
- _npartitions=$(( ${_npartitions} + 1 ))
+ : $(( _npartitions += 1 ))
done
# Now prompt the user for the mount points. Loop until "done"
echo
_i=0
- resp=X
- while [ $_npartitions -gt 0 -a X${resp} != X"done" ]; do
+ resp=
+ while [ $_npartitions -gt 0 -a "$resp" != "done" ]; do
_pp=${_partitions[${_i}]}
_ps=$(( ${_psizes[${_i}]} / 2 ))
_mp=${_mount_points[${_i}]}
diff --git a/distrib/miniroot/install.sub b/distrib/miniroot/install.sub
index 063e9a6102f..13d10712f04 100644
--- a/distrib/miniroot/install.sub
+++ b/distrib/miniroot/install.sub
@@ -1,5 +1,5 @@
#!/bin/sh
-# $OpenBSD: install.sub,v 1.206 2002/04/20 13:42:52 krw Exp $
+# $OpenBSD: install.sub,v 1.207 2002/04/26 02:14:23 krw Exp $
# $NetBSD: install.sub,v 1.5.2.8 1996/09/02 23:25:02 pk Exp $
#
# Copyright (c) 1997-2002 Todd Miller, Theo de Raadt, Ken Westerback
@@ -196,16 +196,6 @@ cutlast () {
eval echo \$$#
}
-# return first character of argument
-firstchar () {
- local _a=$1
-
- while [ ${#_a} != 1 ]; do
- _a=${_a%?}
- done
- echo $_a
-}
-
basename () {
local _oifs
@@ -418,7 +408,7 @@ __EOT
# $1 - IP address
# $2 - symbolic name
addhostent() {
- sed "/ $2\$/d" < /tmp/hosts > /tmp/hosts.new
+ sed "/ $2\$/d" /tmp/hosts > /tmp/hosts.new
mv /tmp/hosts.new /tmp/hosts
echo "$1 $2" >> /tmp/hosts
@@ -1182,14 +1172,13 @@ __EOT
-a ${resp:-0} -ge 1 \
-a -f /tmp/ftplist ]
then
- maxlines=`grep "^${_url_type}:" /tmp/ftplist | cat -n |
- sed -n -e '$p' | cutword 1`
+ maxlines=`grep "^${_url_type}:" /tmp/ftplist | sed -ne '$='`
if [ $maxlines -lt $resp ]; then
echo "There is no ${resp}th line in the list."
resp=
continue
fi
- tline=`grep "^${_url_type}:" /tmp/ftplist | sed -n -e "${resp}p"`
+ tline=`grep "^${_url_type}:" /tmp/ftplist | sed -ne "${resp}p"`
url=`echo $tline | sed -e "s/^${_url_type}:\/\///" |
cutword -t' ' 1 | cutword -t' ' 1`
host=`echo $url | cutword -t/ 1`
@@ -2031,7 +2020,7 @@ get_fqdn() {
# 1.2.3.4 hostname
# to
# 1.2.3.4 hostname.$FQDN hostname
- sed "s/\\(.*\\)[[:space:]]\\(.*\\)\$/\\1 \\2.$FQDN \\2/" < $2 > $2.new
+ sed "s/\\(.*\\)[[:space:]]\\(.*\\)\$/\\1 \\2.$FQDN \\2/" $2 > $2.new
mv $2.new $2
else
echo -n "Enter DNS domain name (e.g. 'bar.com'): [$FQDN] "
@@ -2101,9 +2090,11 @@ __EOT
# override a user supplied (or previous DHCP supplied) FQDN.
get_fqdn /tmp/resolv.conf /tmp/hosts
- resp=`route -n show |
- grep '^default' |
- sed -e 's/^default *//' -e 's/ .*//'`
+ resp=`route -n show | sed -ne '/^default */{
+ s///
+ s/ .*//
+ p
+ }'`
if [ -z "$resp" ] ; then
resp=none
if [ -f /tmp/mygate ]; then
@@ -2125,8 +2116,7 @@ __EOT
resp=none
if [ -f /tmp/resolv.conf ]; then
resp=
- for n in `grep '^nameserver ' /tmp/resolv.conf | \
- sed -e 's/^nameserver //'`
+ for n in `sed -ne '/^nameserver /s///p' /tmp/resolv.conf`
do
if [ -z "$resp" ] ; then
resp=$n