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
|
#!/bin/bash
#
# Creates a DMG disk image for Mac OS X. The Widelands native application
# should be compiled before from the XCode project.
#
# Mac OS X 10.4 or higher is required.
# The path to Widelands application
APPLICATION=`dirname $0`/build/Release/Widelands.app
# Temporary directories
TMP_DIR="/tmp/wl_dmg"
FILES_DIR="$TMP_DIR/files"
MOUNT_DIR="$TMP_DIR/mount"
####
# Print the script usage
####
function print_usage() {
echo "Usage: `basename $0` svn | release <name>"
echo " svn Use SVN revision as name"
echo " release <name> Use the specified name"
}
####
# Collect all needed files into the DMG-source directory
#
# $1: Target directory
# $2: Widelands application
####
function collect_files() {
cp -r $2 $1
# ln -s /Applications $1/
cp `dirname $0`/widelands-disk.icns $1/.VolumeIcon.icns
}
####
# Main
####
# Parse arguments
if [ -z $1 ]; then
print_usage
exit 1
elif [ $1 = svn ]; then
revision=`\`dirname $0\`/../../utils/detect_revision.py`
elif [ $1 = release ]; then
if [ -z $2 ]; then
print_usage
exit 1
else
revision=$2
fi
else
print_usage
exit 1
fi
outfile=Widelands-$revision.dmg
# Tests if the DMG already exists
if [ -f $outfile ]; then
echo "File $outfile already exists"
echo "Overwrite not allowed (can be mounted)"
exit 1
fi
# Tests if the application is built
if [ ! -d $APPLICATION ]; then
echo "Widelands application not found, is it built ?"
echo "Expected: $APPLICATION"
exit 1
fi
# Creates the source directory
echo "Creating directory..."
if [ -e $FILES_DIR ]; then
rm -r -f $FILES_DIR
fi
mkdir -p $FILES_DIR
mkdir -p $MOUNT_DIR
collect_files $FILES_DIR $APPLICATION
# Creates the DMG file
echo "Building a DMG image to $outfile..."
rm -f $TMP_DIR/readwrite.dmg
hdiutil create \
-srcfolder $FILES_DIR \
-format UDRW \
-fs HFS+ \
-volname "Widelands $revision" \
$TMP_DIR/readwrite.dmg
# Attach the image to set properties
echo "Setting filesystem properties..."
hdiutil attach $TMP_DIR/readwrite.dmg -readwrite -mountpoint $MOUNT_DIR -nobrowse
/Developer/Tools/SetFile -a C $MOUNT_DIR
hdiutil detach $MOUNT_DIR
# Convert with zlib compression
hdiutil convert $TMP_DIR/readwrite.dmg -format UDZO -o $outfile
rm -f $TMP_DIR/readwrite.dmg
|