freebsd-src/release/miscfuncs.sh
1994-11-21 06:45:01 +00:00

114 lines
2.5 KiB
Bash

#!/stand/sh
#
# miscfuncs - miscellaneous functions for the other distribution scripts.
#
# Written: November 15th, 1994
# Copyright (C) 1994 by Jordan K. Hubbard
#
# Permission to copy or use this software for any purpose is granted
# provided that this message stay intact, and at this location (e.g. no
# putting your name on top after doing something trivial like reindenting
# it, just to make it look like you wrote it!).
#
# $Id: miscfuncs.sh,v 1.7 1994/11/21 04:35:24 jkh Exp $
if [ "$_MISCFUNCS_SH_LOADED_" = "yes" ]; then
return 0
else
_MISCFUNCS_SH_LOADED_=yes
fi
PATH=/usr/bin:/usr/sbin:/bin:/sbin:/stand
export PATH
# Keep this current with the distribution!
DISTNAME=2.0-BETA
# Flagrant guesses for now. These need to be hand-edited or, much better yet,
# automatically done as part of the release process. When that's the case,
# the hardwired constants will be replaced with tokens that get sed'd for
# the real sizes.
#
BINSIZE="40MB"
GAMESIZE="8MB"
MANSIZE="8MB"
PROFSIZE="4MB"
DICTSIZE="2MB"
SRCSIZE="120MB"
SECRSIZE="4MB"
COMPATSIZE="3MB"
X11SIZE="50MB"
interrupt()
{
if dialog --clear --title "User Interrupt Requested" \
--yesno "Do you wish to abort the installation?" -1 -1; then
exit 0;
fi
}
# Handle the return value from a dialog, doing some pre-processing
# so that each client doesn't have to.
handle_rval()
{
case $1 in
0)
return 0
;;
255)
PS1="subshell# " /stand/sh
;;
*)
return 1
;;
esac
}
# A simple user-confirmation dialog.
confirm()
{
dialog $clear --title "User Confirmation" --msgbox "$*" -1 -1
}
# A simple message box dialog.
message()
{
echo "Progress <$*>" > /dev/ttyv1
dialog $clear --title "Progress" --infobox "$*" -1 -1
}
# A simple error dialog.
error()
{
echo "ERROR <$*>" > /dev/ttyv1
dialog $clear --title "Error!" --msgbox "$*" -1 -1
}
# Something isn't supported yet! :-(
not_supported()
{
echo "<Feature not supported>" > /dev/ttyv1
dialog $clear --title "Sorry!" \
--msgbox "This feature is not supported in the current version of the \
installation tools. Barring some sort of fatal accident, we do \
expect it to be in the release. Please press RETURN to go on." -1 -1
}
# Get a string from the user
input()
{
title=${title-"User Input Required"}
dialog $clear --title "$title" \
--inputbox "$*" -1 -1 "$default_value" 2> ${TMP}/inputbox.tmp.$$
if ! handle_rval $?; then rm -f ${TMP}/inputbox.tmp.$$; return 1; fi
answer=`cat ${TMP}/inputbox.tmp.$$`
rm -f ${TMP}/inputbox.tmp.$$
}
# Ask a networking question
network_dialog()
{
title="Network Configuration"
if ! input "$*"; then return 1; fi
}