1#! /bin/sh -m
2# $NetBSD: install.sh,v 1.2.6.1 2012/06/23 22:54:55 riz 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@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
34PATH=/sbin:/bin:/usr/bin:/usr/sbin:/
35export PATH
36
37termfile=/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
43case $(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    ;;
54esac
55
56export TERM
57HOME=/
58export HOME
59BLOCKSIZE=1k
60export BLOCKSIZE
61EDITOR=ed
62export EDITOR
63SHELL=/bin/sh
64export SHELL
65
66umask 022
67
68stty newcrt werase ^W intr ^C kill ^U erase ^?
69if [ $TERM != "wsvt25" ]; then
70	cat << "EOM"
71
72
73You are using a serial console, we do not know your terminal emulation.
74Please select one, typical values are:
75
76	vt100
77	ansi
78	xterm
79
80EOM
81	echo -n "Terminal type (just hit ENTER for '$TERM'): "
82	read ans
83	if [ -n "$ans" ];then
84	    TERM=$ans
85	fi
86fi
87
88# run the installation or upgrade script.
89cd /
90cmd=./sysinst
91
92while [ -n "${cmd}" ]
93do
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
104			cmd="fg"
105		else
106			cmd=""
107		fi
108	fi
109done
110
111# remember terminal type, now that we know it for sure
112echo "TERM=${TERM}" > ${termfile}
113echo
114echo "To return to the installer, quit this shell by typing 'exit' or ^D."
115exec ${SHELL}
116