install.sh revision 1.4 1 #! /bin/sh -m
2 # $NetBSD: install.sh,v 1.4 2023/01/16 15:00:03 abs Exp $
3 #
4 # -
5 # Copyright (c) 2010 The NetBSD Foundation, Inc.
6 # All rights reserved.
7 #
8 # This code is derived from software contributed to The NetBSD Foundation
9 # by Martin Husemann <martin (at] NetBSD.org>.
10 #
11 # Redistribution and use in source and binary forms, with or without
12 # modification, are permitted provided that the following conditions
13 # are met:
14 # 1. Redistributions of source code must retain the above copyright
15 # notice, this list of conditions and the following disclaimer.
16 # 2. Redistributions in binary form must reproduce the above copyright
17 # notice, this list of conditions and the following disclaimer in the
18 # documentation and/or other materials provided with the distribution.
19 #
20 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
21 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
24 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 # POSSIBILITY OF SUCH DAMAGE.
31
32
33 # setup basic environment
34 PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
35 export PATH
36
37 termfile=/tmp/sysinst.term
38
39 # Check if we are on a framebuffer or on serial console and default
40 # the terminal type accordingly.
41 # There is no /var/db/dev.cdb, so sysctl might not map the devicename properly;
42 # ttyE0 is 90,0 -> 0x5a00
43 case $(sysctl -nx kern.consdev) in
44 002f000000000000)
45 TERM=wsvt25
46 ;;
47 *)
48 if [ -r ${termfile} ]; then
49 . ${termfile}
50 else
51 TERM=vt220
52 fi
53 ;;
54 esac
55
56 export TERM
57 HOME=/
58 export HOME
59 BLOCKSIZE=1k
60 export BLOCKSIZE
61 EDITOR=ed
62 export EDITOR
63 SHELL=/bin/sh
64 export SHELL
65
66 umask 022
67
68 stty newcrt werase ^W intr ^C kill ^U erase ^?
69 if [ $TERM != "wsvt25" ]; then
70 cat << "EOM"
71
72
73 You are using a serial console, we do not know your terminal emulation.
74 Please select one, typical values are:
75
76 vt100
77 ansi
78 xterm
79
80 EOM
81 echo -n "Terminal type (just hit ENTER for '$TERM'): "
82 read ans
83 if [ -n "$ans" ];then
84 TERM=$ans
85 fi
86 fi
87
88 # run the installation or upgrade script.
89 cd /
90 cmd=/usr/sbin/sysinst
91
92 while [ -n "${cmd}" ]
93 do
94 ${cmd}
95 if [ $? = 4 ]; then
96 echo "Oops, something went wrong - we will try again"
97 exit
98 else
99 if [ -n "$(jobs)" ]; then
100 tput clear
101 echo "You have stopped sysinst, return to it by" \
102 "typing 'exit' or ^D."
103 ${SHELL} -i -E
104 cmd="fg"
105 else
106 cmd=""
107 fi
108 fi
109 done
110
111 # remember terminal type, now that we know it for sure
112 echo "TERM=${TERM}" > ${termfile}
113 echo
114 echo "To return to the installer, quit this shell by typing 'exit' or ^D."
115 exec ${SHELL} -E
116