Submit #3149 ยป 0001-Add-serial-detection-and-ask-for-TERM-type.patch
| usr.sbin/installer/installer/installer.sh | ||
|---|---|---|
|
# $Id: installer,v 1.20 2005/04/13 03:32:16 cpressey Exp $
|
||
|
### SUBS ###
|
||
|
cleanup()
|
||
|
{
|
||
|
PIDS=`ps aux | grep -e dfuife_curses -e dfuibe_installer | awk '{print $1}'`
|
||
|
for PID in $PIDS; do
|
||
|
# DFUI still running, kill it
|
||
|
kill -9 $PID
|
||
|
done
|
||
|
}
|
||
|
background_backend()
|
||
|
{
|
||
| ... | ... | |
|
esac
|
||
|
}
|
||
|
is_serial()
|
||
|
{
|
||
|
# Detect if we are currently connected via a serial console
|
||
|
if [ "X`/usr/bin/kenv console`" == "Xcomconsole" ]; then
|
||
|
return 0 # return success
|
||
|
fi
|
||
|
return 1
|
||
|
}
|
||
|
setup_term()
|
||
|
{
|
||
|
# If TERM has not been set manually (ie: still 'dialup' or from /etc/ttyd), we ask the user what they want to use
|
||
|
if [ "X`tty |cut -c6-9`" == "Xttyd" ]; then
|
||
|
newterm=${TERM}
|
||
|
if [ "X`/usr/bin/kenv smbios.bios.vendor`" == "XSeaBIOS" ]; then
|
||
|
# installation on a virtial machine uses this type of simulated bios often, so we can do better than vt100 (eg:vt220-co, vt320-co, cons50-w)
|
||
|
newterm="xterm"
|
||
|
elif [ "X${TERM}" == "Xdialup" ]; then
|
||
|
newterm="vt100"
|
||
|
fi
|
||
|
echo ""
|
||
|
echo -n "What is your terminal type (provide value termcap name)? [${newterm}]: "
|
||
|
read input
|
||
|
[ "${input}" = '' ] && input=$newterm
|
||
|
export TERM="${input}"
|
||
|
echo "set new TERM=$TERM"
|
||
|
fi
|
||
|
TTY_BAUD=`stty speed`
|
||
|
if [ $TTY_BAUD -lt 38400 ]; then
|
||
|
echo -n "Your serial connection is quite slow ($TTY_BAUD), causing installer slow down. Continue Anyway ? [Y/n]: "
|
||
|
read input
|
||
|
[ "${input}" == "N" ] || [ "${input}" == "n" ] && exit 0
|
||
|
fi
|
||
|
}
|
||
|
installer_start()
|
||
|
{
|
||
|
# Console start sequence:
|
||
| ... | ... | |
|
if [ "X$pfi_frontend" = "Xauto" ]; then
|
||
|
if [ "X$TTY_INST" = "X" ]; then
|
||
|
if $(is_installmedia); then
|
||
|
TTY=/dev/ttyv1
|
||
|
pfi_frontend="cursesvty"
|
||
|
else
|
||
|
if $(is_serial); then
|
||
|
setup_term
|
||
|
RENDEZVOUS="installer"
|
||
|
pfi_dfui_transport="npipe"
|
||
|
TTY=$(tty)
|
||
|
pfi_frontend="curseslog"
|
||
|
else
|
||
|
if $(is_installmedia); then
|
||
|
TTY=/dev/ttyv1
|
||
|
pfi_frontend="cursesvty"
|
||
|
else
|
||
|
TTY=$(tty)
|
||
|
pfi_frontend="curseslog"
|
||
|
fi
|
||
|
fi
|
||
|
else
|
||
|
pfi_frontend="cursesx11"
|
||
| ... | ... | |
|
exit 1
|
||
|
fi
|
||
|
trap cleanup EXIT SIGTERM SIGINT
|
||
|
#
|
||
|
# Source directory for the installation
|
||
|
#
|
||