@@ -9,87 +9,135 @@ set -euo pipefail
99IFS=$' \n\t '
1010
1111version=" ${1:- } "
12+ platform=" ${2:- } "
1213root_dir=" ../.."
1314
1415# Check if we have everything we need
1516
16- if [ -z " $version " ]; then
17- echo " usage: $( basename $0 ) version"
17+ if [ -z " ${version} " -o -z " ${platform} " ]; then
18+ echo " usage: $( basename $0 ) version platform"
19+ exit 1
20+ fi
21+ if [ " ${platform} " != " windows" -a " ${platform} " != " linux" ]; then
22+ echo " usage: $( basename $0 ) version platform"
1823 exit 1
1924fi
2025
2126spaces_regex=" [[:space:]]+"
22- if [[ " $version " =~ $spaces_regex ]]; then
27+ if [[ " ${ version} " =~ $spaces_regex ]]; then
2328 echo " ERROR: version shouldn't contain spaces"
2429 exit 1
2530fi
31+ if [[ " ${platform} " =~ $spaces_regex ]]; then
32+ echo " ERROR: platform shouldn't contain spaces"
33+ exit 1
34+ fi
2635
27- if [ ! -d " $root_dir /dungeoneering/application.windows64/" ]; then
36+ if [ " ${platform} " == " windows " -a ! -d " ${ root_dir} /dungeoneering/application.windows64/" ]; then
2837 echo " ERROR: dir application.windows64 not found"
2938 exit 1
3039fi
40+ if [ " ${platform} " == " linux" -a ! -d " ${root_dir} /dungeoneering/application.linux64/" ]; then
41+ echo " ERROR: dir application.linux64 not found"
42+ exit 1
43+ fi
3144
32- if [ -d " $root_dir /releases/$version /dungeoneering-$version -win64/" ]; then
33- echo " ERROR: dir dungeoneering-$version -win64 already exists"
45+ if [ " ${platform} " == " windows" -a -d " ${root_dir} /releases/${version} /dungeoneering-windows64/" ]; then
46+ echo " ERROR: dir dungeoneering-windows64 already exists"
47+ exit 1
48+ fi
49+ if [ " ${platform} " == " linux" -a -d " ${root_dir} /releases/${version} /dungeoneering-linux64/" ]; then
50+ echo " ERROR: dir dungeoneering-linux64 already exists"
3451 exit 1
3552fi
3653
37- echo " Creating release dungeoneering-$version -win64 .zip..."
54+ echo " Creating release dungeoneering-${platform} 64 .zip..."
3855
3956# Go to application root dir
4057
41- cd $root_dir
58+ cd ${ root_dir}
4259
43- # Exclude exported application.windows32 dir
60+ # Exclude uneeded exported applications
4461
45- echo -n " Exclude application.windows32 directory..."
46- if [ -d dungeoneering/application.windows32/ ]; then
47- rm -r dungeoneering/application.windows32/
62+ if [ " ${platform} " == " windows" ]; then
63+ echo -n " Exclude application.windows32 directory..."
64+ if [ -d dungeoneering/application.windows32/ ]; then
65+ rm -r dungeoneering/application.windows32/
66+ fi
67+ echo " done"
68+ fi
69+ if [ " ${platform} " == " linux" ]; then
70+ echo -n " Exclude application.linux32 directory..."
71+ if [ -d dungeoneering/application.linux32/ ]; then
72+ rm -r dungeoneering/application.linux32/
73+ fi
74+ echo " done"
75+ echo -n " Exclude application.linux-arm64 directory..."
76+ if [ -d dungeoneering/application.linux-arm64/ ]; then
77+ rm -r dungeoneering/application.linux-arm64/
78+ fi
79+ echo " done"
80+ echo -n " Exclude application.linux-armv6hf directory..."
81+ if [ -d dungeoneering/application.linux-armv6hf/ ]; then
82+ rm -r dungeoneering/application.linux-armv6hf/
83+ fi
84+ echo " done"
4885fi
49- echo " done"
5086
5187# Create version root dir
5288
53- echo -n " Create $version directory..."
54- mkdir -p releases/$version
89+ echo -n " Create ${ version} directory..."
90+ mkdir -p releases/${ version}
5591echo " done"
5692
57- # Move application.windows64 to version dir
93+ # Move application dir to version dir
5894
59- echo -n " Move application.windows64 to dungeoneering-$version -win64..."
60- mv dungeoneering/application.windows64 releases/$version /dungeoneering-$version -win64
61- echo " done"
95+ if [ " ${platform} " == " windows" ]; then
96+ working_dir=dungeoneering-windows64
97+ echo -n " Move application.windows64 to ${working_dir} ..."
98+ mv dungeoneering/application.windows64 releases/${version} /${working_dir}
99+ echo " done"
100+ fi
101+ if [ " ${platform} " == " linux" ]; then
102+ working_dir=dungeoneering-linux64
103+ echo -n " Move application.linux64 to ${working_dir} ..."
104+ mv dungeoneering/application.linux64 releases/${version} /${working_dir}
105+ echo " done"
106+ fi
62107
63108# Copy release files to version dir
64109
65- echo -n " Copy release files to dungeoneering- $version -win64 ..."
66- cp docs/releases/* .txt releases/$version /dungeoneering- $version -win64 /
67- cp docs/CHANGELOG.md releases/$version /dungeoneering- $version -win64 /CHANGELOG.txt
110+ echo -n " Copy release files to ${working_dir} ..."
111+ cp docs/releases/* .txt releases/${ version} / ${working_dir} /
112+ cp docs/CHANGELOG.md releases/${ version} / ${working_dir} /CHANGELOG.txt
68113echo " done"
69114
70115# Copy libraries to lib dir and then remove platform specific files
71116
72- echo -n " Copy libraries to dungeoneering-$version -win64/lib..."
73- cp -r dungeoneering/code/* releases/$version /dungeoneering-$version -win64/lib
74- rm -r releases/$version /dungeoneering-$version -win64/lib/macosx64/
75- rm -r releases/$version /dungeoneering-$version -win64/lib/windows32/
117+ echo -n " Copy libraries to ${working_dir} /lib..."
118+ cp -r dungeoneering/code/* releases/${version} /${working_dir} /lib
119+ rm -r releases/${version} /${working_dir} /lib/macosx64/
120+ rm -r releases/${version} /${working_dir} /lib/windows32/
121+ if [ " ${platform} " == " linux" ]; then
122+ rm -r releases/${version} /${working_dir} /lib/windows64/
123+ fi
76124echo " done"
77125
78126# Remove unnecessary files from version dir
79127
80- echo -n " Remove unnecessary files from dungeoneering- $version -win64 ..."
81- rm releases/$version /dungeoneering- $version -win64 /source/dungeoneering.java
82- rm -r releases/$version /dungeoneering- $version -win64 /data/icons/orig/
83- if [ -d releases/$version /dungeoneering- $version -win64 /data/campaign/ ]; then
84- rm -r releases/$version /dungeoneering- $version -win64 /data/campaign/
128+ echo -n " Remove unnecessary files from ${working_dir} ..."
129+ rm releases/${ version} / ${working_dir} /source/dungeoneering.java
130+ rm -r releases/${ version} / ${working_dir} /data/icons/orig/
131+ if [ -d releases/${ version} / ${working_dir} /data/campaign/ ]; then
132+ rm -r releases/${ version} / ${working_dir} /data/campaign/
85133fi
86134echo " done"
87135
88136# Create release zip file
89137
90- echo -n " Create a ZIP file with dungeoneering- $version -win64 contents..."
91- cd releases/$version
92- zip -qr dungeoneering- $version -win64 .zip dungeoneering- $version -win64 /
138+ echo -n " Create a ZIP file with ${working_dir} contents..."
139+ cd releases/${ version}
140+ zip -qr ${working_dir} .zip ${working_dir} /
93141echo " done"
94142
95143echo " Done"
0 commit comments