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