1 #! /bin/sh -m 2 # $NetBSD: install.sh,v 1.3 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