/
distribute.sh
executable file
·143 lines (133 loc) · 4.87 KB
/
distribute.sh
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
#!/bin/bash
set -e # exit 1 if any command fails
cd "$(dirname "$0")"
# set -x # uncomment for debugging
if [ "$1" == "--nocompile" ]
then
COMPILE=0
else
COMPILE=1
fi
echo "Determining Version (may be overriden with environment variable VERSION):"
VERSION=${VERSION:-$(cat ../src/com/t_oster/visicut/gui/resources/VisicutApp.properties |grep Application.version)}
VERSION=${VERSION#*=}
VERSION=${VERSION// /}
echo "Version is: \"$VERSION\""
if [ "$COMPILE" == 1 ]
then
echo "Building jar..."
cd ..
ant clean > /dev/null
make > /dev/null || exit 1
cd distribute
fi
echo "Removing leftover files"
rm -rf visicut
echo "Copying content..."
mkdir visicut
cp -r ../dist/* visicut/
cp -r files/* visicut/
cp ../README.md visicut/README
cp ../COPYING.LESSER visicut/
cp ../LICENSE visicut/
chmod +x visicut/*.jar
chmod +x visicut/VisiCut.*
mkdir -p visicut/inkscape_extension
cp ../tools/inkscape_extension/*.py visicut/inkscape_extension/
cp ../tools/inkscape_extension/*.inx visicut/inkscape_extension/
mkdir -p visicut/illustrator_script
cp ../tools/illustrator_script/*.scpt visicut/illustrator_script/
if which makensis > /dev/null
then
echo "Building Windows launcher and installer"
# Copy files to wintmp/
rm -rf wintmp
mkdir wintmp
cp -r windows/* wintmp/
[ -d wintmp/stream ] || mkdir wintmp/stream
cp -r visicut/* wintmp/stream/
cp ../tools/inkscape_extension/* wintmp/
# build setup.exe installer
# and VisiCut.exe launcher executable
cat windows/installer.nsi|sed s#VISICUTVERSION#"$VERSION"#g > wintmp/installer.nsi
pushd wintmp > /dev/null
makensis launcher.nsi > /dev/null || exit 1 # build VisiCut.exe
cp VisiCut.exe ../visicut/ # copy VisiCut.exe so that it is included in the platform independent ZIP
mv VisiCut.exe ./stream/
makensis installer.nsi > /dev/null || exit 1 # build setup.exe
popd
mv wintmp/setup.exe VisiCut-$VERSION-Windows-Installer.exe || exit 1
zip VisiCut-$VERSION-Windows-Installer.zip VisiCut-$VERSION-Windows-Installer.exe # for github upload
# cleanup
rm -rf wintmp
else
echo "NSIS not found. The resulting ZIP will be missing the Visicut.exe launcher for Windows."
echo "Not building Windows installer."
fi
echo "Compressing content..."
[ -f VisiCut-$VERSION.zip ] && rm VisiCut-$VERSION.zip
zip -r VisiCut-$VERSION.zip visicut/ > /dev/null || exit 1
echo ""
echo "****************************************************************"
echo "Mac OS Version: Building the Mac OS Version should work on all platforms"
echo "Build Mac OS Version (Y/n)?"
read answer || true
if [ "$answer" != "n" ]
then
echo "Creating Mac OS Bundle"
[ -d VisiCut.app ] && rm -rf VisiCut.app
cp -r "mac/VisiCut.app" .
mkdir -p "VisiCut.app/Contents/Resources/Java"
cp -r visicut/* "VisiCut.app/Contents/Resources/Java/"
mkdir "VisiCut.app/Contents/Java"
mv "VisiCut.app/Contents/Resources/Java/Visicut.jar" "VisiCut.app/Contents/Java/"
mv "VisiCut.app/Contents/Resources/Java/lib" "VisiCut.app/Contents/Java/"
cp "../src/com/t_oster/visicut/gui/resources/splash.png" "VisiCut.app/Contents/Resources/Java"
echo "Updating Bundle Info"
cp "VisiCut.app/Contents/Info.plist" .
cat Info.plist|sed s#VISICUTVERSION#"$VERSION"#g > VisiCut.app/Contents/Info.plist
rm Info.plist
echo "Compressing Mac OS Bundle"
rm -rf VisiCutMac-$VERSION.zip
zip -r VisiCutMac-$VERSION.zip VisiCut.app > /dev/null || exit 1
echo "Cleaning up..."
rm -rf VisiCut.app
fi
echo "Dir:$(pwd)"
echo "****************************************************************"
echo "Ubuntu Version: For Building you must have checkinstall and dpkg"
echo "and no VisiCut installation may be installed."
echo "Build Ubuntu Version (Y/n)?"
read answer || true
if [ "$answer" != "n" ]
then
pushd . > /dev/null
cp linux/*-pak ../
cd ..
# hide doc directory from checkinstall
# mv doc doctmp
test -f /usr/bin/visicut && { echo "error: please first uninstall visicut"; exit 1; }
fakeroot checkinstall --fstrans --reset-uid --type debian --install=no -y --pkgname visicut --pkgversion $VERSION --arch all --pkglicense LGPL --pkggroup other --pkgsource "http://visicut.org" --pkgaltsource "https://github.com/t-oster/VisiCut" --pakdir distribute/ --maintainer "'Thomas Oster <thomas.oster@rwth-aachen.de>'" --requires "bash,java-runtime,potrace" make install -e PREFIX=/usr > /dev/null || { echo "error"; exit 1; }
rm -rf *-pak
# mv doctmp doc
popd > /dev/null
fi
echo "Dir: $(pwd)"
echo "****************************************************************"
echo "Arch Linux Version: For Building you must have pacman installed."
echo "Build Arch Linux Version (Y/n)?"
read answer || true
if [ "$answer" != "n" ]
then
cd linux
ARCHVERSION=$(echo $VERSION|sed "s#-#_#g")
cat PKGBUILD | sed "s#pkgver=VERSION#pkgver=$ARCHVERSION#g" > PKGBUILD-tmp
makepkg -p PKGBUILD-tmp > /dev/null || exit 1
mv *.pkg.tar.xz ../
echo "Cleaning up..."
rm -rf src pkg PKGBUILD-tmp
cd ..
fi
echo "Cleaning up..."
rm -rf visicut
echo "done."