Magellan Linux

Contents of /trunk/freespace2/fs2-open-installer.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 94 - (show annotations) (download) (as text)
Mon Jan 15 22:29:02 2007 UTC (17 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 3143 byte(s)
new files

1 #!/bin/bash
2 # $Header: /root/magellan-cvs/src/freespace2/fs2-open-installer.sh,v 1.1 2007-01-15 22:29:01 niro Exp $
3 # Freespace2 retail files installer
4
5 die()
6 {
7 echo "Error: $@"
8 exit 1
9 }
10
11 DATADIR=/usr/games/freespace2
12 CDROM="$1"
13
14 [[ $(id -u) != 0 ]] && die "You must be root!"
15 [[ -f ${DATADIR}/.installed ]] && die "Media files already installed."
16 [[ -z $(which unshield) ]] && die "unshield not found."
17 [[ -z $(which mktemp) ]] && die "mktemp not found."
18 [[ -z $(which eject) ]] && die "eject not found."
19 #[[ -z $(which dialog) ]] && die "dialog not found."
20 [[ -z ${CDROM} ]] && "No cdrom device given."
21
22 TMP="$(mktemp -d)"
23
24 # some needed directories
25 install -d ${TMP}/cdrom
26 install -d ${TMP}/data
27 install -d ${TMP}/retailvp
28
29 echo "To setup Freespace2 I need to copy several files from the original CDs."
30 echo
31
32 #### disc1 ####
33 echo "Please insert Disc1 of Freespace2 into your cdrom and press enter"
34 read
35
36 mount ${CDROM} ${TMP}/cdrom || die "mount disc1"
37 [[ ! -f ${TMP}/cdrom/data1.cab ]] && "Disc1 not found"
38
39 echo "Copying data1.cab and data1.hdr to ${TMP}/data"
40 cp ${TMP}/cdrom/data1.{cab,hdr} ${TMP}/data || die "copying data1.cab/hdr"
41 umount ${TMP}/cdrom || die "umount disc1 failed"
42 eject ${CDROM}
43
44
45 #### disc2 ####
46 echo
47 echo "Please insert Disc2 of Freespace2 into your cdrom and press enter"
48 read
49
50 mount ${CDROM} ${TMP}/cdrom || die "mount disc2"
51 [[ ! -f ${TMP}/cdrom/data2.cab ]] && "Disc2 not found"
52
53 for i in tango1_fs2.vp COLOSSUS.MVE INTRO.MVE MONO1.MVE
54 do
55 echo "Copying ${i} to ${TMP}/data"
56 # lower case needed!
57 cp ${i} ${TMP}/data/$(echo $i | tr [:upper:] [:lower:]) || die "copying ${i}"
58 done
59 umount ${TMP}/cdrom || die "umount disc2 failed"
60 eject ${CDROM}
61
62
63 #### disc3 ####
64 echo
65 echo "Please insert Disc3 of Freespace2 into your cdrom and press enter"
66 read
67
68 mount ${CDROM} ${TMP}/cdrom || die "mount disc3"
69 [[ ! -f ${TMP}/cdrom/data3.cab ]] && "Disc3 not found"
70
71
72 for i in tango2_fs2.vp tango3_fs2.vp BASTION.MVE ENDPART1.MVE \
73 ENDPRT2A.MVE ENDPRT2B.MVE MONO2.MVE MONO3.MVE MONO4.MVE
74 do
75 echo "Copying ${i} to ${TMP}/data"
76 # lower case needed!
77 cp ${i} ${TMP}/data/$(echo $i | tr [:upper:] [:lower:]) || die "copying ${i}"
78 done
79 umount ${TMP}/cdrom || die "umount disc3 failed"
80 eject ${CDROM}
81
82
83 echo
84 echo "Now extracting files from retail version ..."
85
86 for group in "Basic Install Files" \
87 "Intel Anims" \
88 "Music Compressed" \
89 "High Res Files"
90 do
91 unshield -d ${TMP}/retailvp -g "$group" -L -j x data1.cab || die "unpacking ${group}"
92 done
93 unshield -d ${TMP} -g "Hud Config Files" -L -j x data1.cab || die "unpacking ${group}"
94
95
96 echo "Installing Retail Freespace2 files to the system ..."
97 install -m0644 ${TMP}/hud_config_files/* ${DATADIR}/data/players || die "installing HUD"
98 install -m0644 ${TMP}/retailvp/*/* ${DATADIR}/data/players || die "installing retailvps1"
99 install -m0644 ${TMP}/data/*.vp ${DATADIR} || die "installing retailvps2"
100 install -m0644 ${TMP}/data/*.mve ${DATADIR}/data/movies || die "installing movies"
101
102 # mark installation as "installed"
103 touch ${DATADIR}/.installed
104
105 echo "Cleaning up temp dirs ..."
106 [[ -d ${TMP} ]] && rm -rf ${TMP}
107
108 echo "Installation of Freespace2 successfully finished!"