1#! /bin/sh -m 2# $NetBSD: install.sh,v 1.4 2023/02/12 19:18:41 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@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=/usr/sbin/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 -E 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} -E 116