diff options
author | David Walter Seikel | 2012-08-20 06:10:20 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-08-20 06:10:20 +1000 |
commit | 2a7ac582089692def6627bf6bedb8443917bcfbc (patch) | |
tree | 289828f7eb94ce0032fdbb42a11dd39ccb8569c6 /BuildReleases.sh | |
parent | Initial commit (diff) | |
download | ImpyReleaseBuilder-2a7ac582089692def6627bf6bedb8443917bcfbc.zip ImpyReleaseBuilder-2a7ac582089692def6627bf6bedb8443917bcfbc.tar.gz ImpyReleaseBuilder-2a7ac582089692def6627bf6bedb8443917bcfbc.tar.bz2 ImpyReleaseBuilder-2a7ac582089692def6627bf6bedb8443917bcfbc.tar.xz |
Initial commit of the half finished script.
Diffstat (limited to '')
-rwxr-xr-x | BuildReleases.sh | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/BuildReleases.sh b/BuildReleases.sh new file mode 100755 index 0000000..230a90b --- /dev/null +++ b/BuildReleases.sh | |||
@@ -0,0 +1,127 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | PWD=$(pwd) | ||
4 | |||
5 | unique_port() | ||
6 | { | ||
7 | # Try to find an unused port number for each running instance of the program. | ||
8 | |||
9 | START=8192 | ||
10 | RANGE=$[$(awk '{print $1}' /proc/sys/net/ipv4/ip_local_port_range)-$START] | ||
11 | if [ $RANGE -lt 8 ] | ||
12 | then | ||
13 | START=$[$(awk '{print $2}' /proc/sys/net/ipv4/ip_local_port_range)] | ||
14 | RANGE=$[65535-$START] | ||
15 | if [ $RANGE -lt 8 ] | ||
16 | then | ||
17 | START=16384 | ||
18 | RANGE=32768 | ||
19 | fi | ||
20 | fi | ||
21 | echo $[($$%$RANGE)+$START] | ||
22 | } | ||
23 | |||
24 | |||
25 | rm -rf TARBALLS | ||
26 | mkdir TARBALLS | ||
27 | date=$(date '+%H_%d-%m-%Y') | ||
28 | |||
29 | |||
30 | if [ -d SOURCE ]; then | ||
31 | echo "Updating source." | ||
32 | cd SOURCE && | ||
33 | git pull && | ||
34 | cd .. || exit 0 | ||
35 | else | ||
36 | echo "Downloading source." | ||
37 | mkdir SOURCE && | ||
38 | git clone git://github.com/imprudence/imprudence.git SOURCE || exit 0 | ||
39 | fi | ||
40 | |||
41 | echo "Creating source tarball." | ||
42 | tar czf TARBALLS/impy-release-source_${date}.tar.gz --exclude-vcs SOURCE && | ||
43 | |||
44 | |||
45 | echo "Building locally, assuming 64 bit, linux." && | ||
46 | rm -fr BUILD && | ||
47 | mkdir BUILD && | ||
48 | tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD && | ||
49 | cd BUILD/SOURCE && | ||
50 | cd linden/scripts/linux && | ||
51 | ./0-patch-SL-source && | ||
52 | ./1-get-libraries-from-SL && | ||
53 | ./2-trim-libraries-from-SL && | ||
54 | ./3-compile-SL-source && | ||
55 | ./4-package-viewer && | ||
56 | cd ../../indra/viewer-linux-* && | ||
57 | cp Imprudence-* ../../../../../TARBALLS | ||
58 | cd ../../../../.. | ||
59 | |||
60 | |||
61 | FTP_PORT=$(unique_port) | ||
62 | echo "=== launching FTP daemon on port $FTP_PORT" | ||
63 | # Fire off an ftp daemon, making sure it's killed when this script exits. | ||
64 | # (We use the busybox version because no two ftp daemons have quite the same | ||
65 | # command line arguments, and this one's a known quantity.) | ||
66 | |||
67 | # Busybox needs -s 127.0.0.1 support here | ||
68 | ./busybox nc -p $FTP_PORT -lle ./busybox ftpd -w TARBALLS & | ||
69 | trap "kill $(jobs -p)" EXIT | ||
70 | disown $(jobs -p) | ||
71 | # QEMU's alias for host loopback | ||
72 | FTP_SERVER=10.0.2.2 | ||
73 | |||
74 | |||
75 | echo "Building in qemu, assuming 32 bit, linux." && | ||
76 | # Relies on the guest having this in /etc/init/ttyS0.conf - | ||
77 | #start on stopped rc RUNLEVEL=[2345] | ||
78 | #stop on runlevel [!2345] | ||
79 | #respawn | ||
80 | #exec /sbin/getty -iLn -l /bin/bash 115200 ttyS0 vt102 | ||
81 | |||
82 | qemu -M pc -cpu athlon -hda ~/bin/ubuntu32_diff.qcow2 -m 1G -serial stdio << zzzzEOFzzzz | ||
83 | # | ||
84 | cd /home/builder && | ||
85 | rm -fr BUILD && | ||
86 | mkdir BUILD && | ||
87 | mkdir -p TARBALLS && | ||
88 | sleep 2 && | ||
89 | busybox ftpget ${FTP_SERVER} -vP ${FTP_PORT} TARBALLS/impy-release-source_${date}.tar.gz impy-release-source_${date}.tar.gz && | ||
90 | tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD && | ||
91 | cd BUILD/SOURCE && | ||
92 | cd linden/scripts/linux && | ||
93 | ./0-patch-SL-source && | ||
94 | ./1-get-libraries-from-SL && | ||
95 | ./2-trim-libraries-from-SL && | ||
96 | ./3-compile-SL-source && | ||
97 | ./4-package-viewer && | ||
98 | cd ../../indra/viewer-linux-* && | ||
99 | cp Imprudence-* ../../../../../TARBALLS && | ||
100 | cd /home/builder/TARBALLS && | ||
101 | find . -name Imprudence-* -type f -exec busybox ftpput ${FTP_SERVER} -vP ${FTP_PORT} '{}' '{}' \; | ||
102 | |||
103 | shutdown -h now | ||
104 | zzzzEOFzzzz | ||
105 | |||
106 | sleep 10 | ||
107 | |||
108 | echo "Building in qemu, Windows XP." | ||
109 | expect -c "set date ${date}" -c "set FTP_SERVER ${FTP_SERVER}" -c "set FTP_PORT ${FTP_PORT}" - << "zzzzEOFzzzz" | ||
110 | set timeout -1 | ||
111 | set send_slow {1 .1} | ||
112 | spawn qemu -M pc -cpu athlon -m 2G -hda /media/sdb2/IMAGES/xp_diff.qcow2 -cdrom /home/dvs1/Downloads/lose/winxphomex86.iso -serial stdio | ||
113 | match_max 100000 | ||
114 | expect -exact "\$ "; sleep .1; send -s -- "cd /home/me\r" | ||
115 | expect -exact "\$ "; sleep .1; send -s -- "rm -fr BUILD\r" | ||
116 | expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'mkdir BUILD'\r" | ||
117 | expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'mkdir -p TARBALLS'\r" | ||
118 | expect -exact "\$ "; sleep 2; send -s -- "lftp -c 'open -p $FTP_PORT $FTP_SERVER && lcd TARBALLS && get1 impy-release-source_$date.tar.gz'\r" | ||
119 | expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'tar xzf TARBALLS/impy-release-source_$date.tar.gz -C BUILD'\r" | ||
120 | expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'ls -la BUILD'\r" | ||
121 | expect -exact "\$ "; sleep .1; send -s -- "su - me -c 'ls -la TARBALLS'\r" | ||
122 | |||
123 | expect -exact "\$ "; sleep .1; send -s -- "shutdown -s now\r" | ||
124 | expect eof | ||
125 | zzzzEOFzzzz | ||
126 | |||
127 | |||