Improved install program.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@802 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2003-02-23 22:28:08 +00:00
parent a2e54e5f32
commit 619640d01c
10 changed files with 458 additions and 165 deletions
+139
View File
@@ -0,0 +1,139 @@
MENU_main_ITEMS="components install_prefix"
MENU_main_TITLE="The Ur-Quan Masters installation"
MENU_main_ITEM_components_TYPE=MENU
MENU_main_ITEM_install_prefix_TYPE=INPUT
MENU_components_TITLE="Optional components"
MENU_components_TEXT=\
" Here you can select which components you'd like to have installed. If you
can spare the space, you are adviced to select all, for the maximum game
experience.
"
package_filename() {
local FILENAME PACKNAME
eval PACKNAME="\${UQM_PACKAGE_$1_NAME}"
# Check complete package first for reinstall or downgrade.
# If they're not found, we'll settle for an upgrade package,
# maybe it will work, maybe it won't.
case "$UQM_INSTALL" in
NEW|REINSTALL|DOWNGRADE)
FILENAME="${CONTENT_PATH}/uqm-${UQM_VERSION}-$PACKNAME.zip"
if [ -f "$FILENAME" ]; then
# Found complete package.
echo "$FILENAME"
return 0
fi
;;
esac
# A full package is needed for a new install
if [ "$UQM_INSTALL" = NEW ]; then
return 1
fi
# Check for upgrade package.
FILENAME="${CONTENT_PATH}/uqm-${UQM_OLDVERSION}_to_${UQM_VERSION}-$PACKNAME.zip"
if [ -f "$FILENAME" ]; then
# Found upgrade package.
echo "$FILENAME"
return 0
fi
# Check complete package again, as you can upgrade with a complete
# package.
if [ "$UQM_INSTALL" = UPGRADE ]; then
FILENAME="${CONTENT_PATH}/uqm-${UQM_VERSION}-$PACKNAME.zip"
if [ -f "$FILENAME" ]; then
# Found complete package.
echo "$FILENAME"
return 0
fi
fi
return 1
}
package_available() {
package_filename "$@" > /dev/null
return $?
}
set_components_menu() {
local TITLE OPTIONAL DEFAULT
MENU_install_components_TITLE="Optional components selection"
MENU_install_components_ITEMS="$UQM_PACKAGES"
for PACKAGE in $UQM_PACKAGES; do
eval TITLE="\"\${UQM_PACKAGE_${PACKAGE}_TITLE}\""
eval OPTIONAL="\${UQM_PACKAGE_${PACKAGE}_OPTIONAL}"
eval DEFAULT="\${UQM_PACKAGE_${PACKAGE}_DEFAULT}"
eval MENU_install_components_ITEM_${PACKAGE}_TYPE=CHECK
eval CHECK_${PACKAGE}_TITLE=\"\$TITLE\"
if [ "$DEFAULT" = "TRUE" ]; then
eval CHECK_${PACKAGE}_DEFAULT=CHECKED
else
eval CHECK_${PACKAGE}_DEFAULT=UNCHECKED
fi
if package_available "$PACKAGE"; then
if [ "$OPTIONAL" = "FALSE" ]; then
eval CHECK_${PACKAGE}_VALUE=CHECKED
eval CHECK_${PACKAGE}_FIXED=TRUE
fi
else
if [ "$OPTIONAL" = "TRUE" ]; then
eval CHECK_${PACKAGE}_VALUE=UNCHECKED
eval CHECK_${PACKAGE}_FIXED=TRUE
else
echo "Can't find '$PACKAGE' package"
return 1
fi
fi
done
return 0
}
show_components_menu() {
do_menu MENU install_components ""
}
INPUT_install_prefix_TITLE="Installation prefix"
#INPUT_install_prefix_TEXT=\
#" This is the top directory where the game data will be installed.
# In the directory you specify directories like 'lib' and 'bin' will
# be used.
#"
if [ "$(id -u)" -eq 0 ]; then
INPUT_install_prefix_DEFAULT="/usr/local/games/"
else
INPUT_install_prefix_DEFAULT="$HOME/uqm/"
fi
INPUT_install_prefix_VALIDATOR=validate_path
show_install_prefix_menu() {
do_menu INPUT install_prefix ""
INPUT_install_prefix_VALUE="${INPUT_install_prefix_VALUE%/}/"
}
INPUT_content_path_TITLE="Location of content packages"
INPUT_content_path_DEFAULT="${PWD%/}/"
INPUT_content_path_VALIDATOR=validate_path
show_content_path_menu() {
do_menu INPUT content_path ""
INPUT_content_path_VALUE="${INPUT_content_path_VALUE%/}/"
}
selected_components() {
local RESULT COMPONENT VALUE
RESULT=""
for COMPONENT in $MENU_install_components_ITEMS; do
eval VALUE="\$MENU_install_components_ITEM_$COMPONENT"
if [ "$VALUE" = checked ]; then
RESULT="${RESULT:+$RESULT }$((package_filename $COMPONENT))"
fi
done
echo "$RESULT"
}