summaryrefslogtreecommitdiff
path: root/build/unix_installer/installer.config
blob: aeb9a03f61fcb31b2200620d8327629c7feb7061 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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 'bin', 'lib' and 'share'
#  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_packages() {
	local RESULT PACKAGE VALUE
	RESULT=""
	for PACKAGE in $UQM_PACKAGES; do
		eval VALUE="\$CHECK_${PACKAGE}_VALUE"
		if [ "$VALUE" = CHECKED ]; then
			RESULT="${RESULT:+$RESULT }$PACKAGE"
		fi
	done
	echo "$RESULT"
}