1# $NetBSD: dot.commonutils,v 1.8 2022/08/28 12:44:01 tsutsui Exp $
2#
3# Copyright (c) 1994 Christopher G. Demetriou
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14# 3. All advertising materials mentioning features or use of this software
15#    must display the following acknowledgement:
16#          This product includes software developed for the
17#          NetBSD Project.  See http://www.NetBSD.org/ for
18#          information about NetBSD.
19# 4. The name of the author may not be used to endorse or promote products
20#    derived from this software without specific prior written permission.
21#
22# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32#
33# <<Id: LICENSE,v 1.2 2000/06/14 15:57:33 cgd Exp>>
34
35# Installation utilites (functions), to get NetBSD installed on
36# the hard disk.  These are meant to be invoked from the shell prompt,
37# by people installing NetBSD.
38
39# we know that /etc/fstab is only generated on the hard drive
40dest_dir=/
41if [ ! -f /etc/fstab ]; then
42          dest_dir=/mnt/
43fi
44
45# counter for possible shared library confusion
46PAX=/bin/pax
47GUNZIP=/usr/bin/gunzip
48
49Set_tmp_dir()
50{
51          def_tmp_dir=`pwd`
52          if [ "$def_tmp_dir" = "/" ] || [ "$def_tmp_dir" = "/mnt" ]; then
53                    def_tmp_dir="$dest_dir"usr/distrib
54          fi
55
56          echo -n   "What directory should be used to find and/or store "
57          echo      "installtion"
58          echo -n   "files such as base.tgz and kern.tgz? [$def_tmp_dir] "
59          read tmp_dir
60          if [ "$tmp_dir" = "" ]; then
61                    tmp_dir=$def_tmp_dir
62          fi
63          if [ ! -d "$tmp_dir" ]; then
64                    /bin/rm -rf $tmp_dir
65                    mkdir -p $tmp_dir
66          fi
67}
68
69Tmp_dir()
70{
71          if [ "$tmp_dir" = "" ]; then
72                    Set_tmp_dir
73          fi
74          cd $tmp_dir
75}
76
77Load_fd()
78{
79          Tmp_dir
80          which=
81#         echo "Don't forget that you can't load from the drive you booted from."
82          echo ""
83
84          while [ "$which" != "0" ] && [ "$which" != "1" ]; do
85                    echo -n   "Read from which floppy drive ('0' or '1')? [0] "
86                    read which
87                    if [ "X$which" = "X" ]; then
88                              which=0
89                    fi
90          done
91          echo      ""
92          echo      "WARNING: during the floppy loading process, you should only"
93          echo      "use Control-C at the prompt."
94          echo      ""
95          while echo -n \
96              "Insert floppy (hit Control-C to terminate, enter to load): "
97          do
98                    read foo
99                    mount -r -t msdos /dev/fd${which}a /mnt2
100                    cp -rp /mnt2/* .
101                    umount /mnt2
102          done
103}
104
105Load_tape()
106{
107          Tmp_dir
108          echo -n   "Which tape drive will you be using? [rst0] "
109          read which
110          if [ "X$which" = "X" ]; then
111                    which=rst0
112          fi
113          echo -n "Insert the tape into the tape drive and hit return to "
114          echo -n "continue..."
115          read foo
116          echo      "Extracting files from the tape..."
117          $PAX -rvpe -f /dev/$which
118          echo      "Done."
119}
120
121Extract()
122{
123          Tmp_dir
124          echo -n "Would you like to list the files as they're extracted? [n] "
125          read verbose
126          case $verbose in
127          y*|Y*)
128                    tarverbose=-v
129                    ;;
130          *)
131                    tarverbose=
132                    ;;
133          esac
134          cat "$1"* | $GUNZIP | (cd $dest_dir ; $PAX -rpe $tarverbose )
135}
136