File: config

package info (click to toggle)
quake2-data 9
  • links: PTS
  • area: contrib
  • in suites: woody
  • size: 112 kB
  • ctags: 19
  • sloc: sh: 421; exp: 106; makefile: 55
file content (154 lines) | stat: -rwxr-xr-x 3,215 bytes parent folder | download | duplicates (2)
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/sh
# config for quake2-data

# woosy coward script
set -e

# source the debconf magics
. /usr/share/debconf/confmodule

# we are hip and down with the new generation
db_version 2.0
# look ma, i can reverse park!
db_capb backup

PREVSTATE=1
STATE=1

pointfile=q2-3.20-x86-full-ctf.exe
sharefile=q2-314-demo-x86.exe

sharepakmd5="27d77240466ec4f3253256832b54db8a"
cdrompakmd5="1ec55a724dc3109fd50dde71ab581d70"
pointpakmd5="42663ea709b7cd3eb9b634b36cfecb1a"

BASE=/usr/lib/games/quake2/baseq2

getsum() {
	_FILE=$1

	if [ -e "$_FILE" ]; then
		md5sum $_FILE | cut -f1 -d' '
	fi
}

validmd5() {
	_FILE=$1
	_SUM=$2

	_CHECK=`getsum $_FILE`
	if [ "$_CHECK" = "$_SUM" ]; then
		echo true
	else
		echo false
	fi
}

OLDVERSION=$2

if [ -z "$OLDVERSION" ]; then
	OLDVERSION=6
fi

while [ "$STATE" != "0" ]; do

	case "$STATE" in
		1)  # install shareware or full version?
			db_input medium quake2-data/instmethod || true
			# where do we go from here?
			NEXTSTATE=2
			PREVSTATE=0
			;;
		2)  # tell user what they chose
			db_get quake2-data/instmethod
			if [ "$RET" = "download shareware data" ]; then
				db_input medium quake2-data/shareinst || true
				NEXTSTATE=3
				PREVSTATE=1
			elif [ "$RET" = "install from CD-ROM" ]; then
				db_input medium quake2-data/fullinst || true
				NEXTSTATE=5
				PREVSTATE=1
			else
				NEXTSTATE=0
				PREVSTATE=1
			fi
			;;
		3)  # where to store downloaded file
			db_get quake2-data/pointrelease
			POINTREL="$RET"
			db_get quake2-data/instmethod
			INSTMETHOD="$RET"

			if [ "$INSTMETHOD" = "download shareware data" ]; then
				VALID=`validmd5 $BASE/pak0.pak $sharepakmd5`
				if [ "$OLDVERSION" -lt "6" -o "$VALID" = "false" ]; then
					db_input medium quake2-data/storage || true
					NEXTSTATE=4
				else
					#db_input medium quake2-data/donealready || true
					NEXTSTATE=0
				fi
				PREVSTATE=1
			elif [ "$POINTREL" = "true" -a "$INSTMETHOD" = "install from CD-ROM" ]; then
				VALID=`validmd5 $BASE/pak1.pak $pointpakmd5`
				if [ "$OLDVERSION" -lt "6" -o "$VALID" = "false" ]; then
					db_input medium quake2-data/storage || true
					NEXTSTATE=4
				else
					#db_input medium quake2-data/donealready || true
					NEXTSTATE=0
				fi
				PREVSTATE=7
			else
				NEXTSTATE=0
			fi
			;;
		4)  # which mirror to use
			db_get quake2-data/storage
			STORAGE="$RET"
			
			db_get quake2-data/instmethod
			if [ "$RET" = "download shareware data" -a ! -e "$STORAGE/$sharefile" ]; then
				db_input medium quake2-data/mirror || true
				NEXTSTATE=0
				PREVSTATE=3
			elif [ "$RET" = "install from CD-ROM" -a ! -e "$STORAGE/$pointfile" ]; then
				db_input medium quake2-data/mirror || true
				NEXTSTATE=0
				PREVSTATE=7
			else
				NEXTSTATE=0
				PREVSTATE=1
			fi

			;;
		5)
			VALID=`validmd5 $BASE/pak0.pak $cdrompakmd5`
			if [ "$VALID" = "false" ]; then
				db_input medium quake2-data/cdromdir || true
				NEXTSTATE=6
			else
				NEXTSTATE=0
			fi
			PREVSTATE=1
			;;
		6)
			db_input medium quake2-data/copyfiles || true
			NEXTSTATE=7
			PREVSTATE=5
			;;
		7)
			db_input medium quake2-data/pointrelease || true
			NEXTSTATE=3
			PREVSTATE=6
			;;
	esac

	# debconf is GO!
	if db_go ; then
		STATE=$NEXTSTATE
	else
		STATE=$PREVSTATE
	fi
done