forked from jboss-developer/jboss-eap-quickstarts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrelease-utils.sh
executable file
·139 lines (114 loc) · 3.18 KB
/
release-utils.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
#!/bin/bash
REQUIRED_BASH_VERSION=3.0.0
if [[ $BASH_VERSION < $REQUIRED_BASH_VERSION ]]; then
echo "You must use Bash version 3 or newer to run this script"
exit
fi
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
# DEFINE
ARCHETYPES=("jboss-javaee6-webapp-archetype" "jboss-javaee6-webapp-ear-archetype")
QUICKSTARTS=("kitchensink" "kitchensink-ear")
# SCRIPT
HUMAN_READABLE_ARCHETYPES=""
i=0
element_count=${#ARCHETYPES[@]}
index=0
while [ "$index" -lt "$element_count" ]
do
if [ $index -ne 0 ]
then
HUMAN_READABLE_ARCHETYPES="${HUMAN_READABLE_ARCHETYPES}, "
fi
HUMAN_READABLE_ARCHETYPES="${HUMAN_READABLE_ARCHETYPES}${ARCHETYPES[index]}"
((index++))
done
usage()
{
cat << EOF
usage: $0 options
This script aids in releasing the quickstarts
OPTIONS:
-u Updates version numbers in all POMs, used with -o and -n
-o Old version number to update from
-n New version number to update to
-r Regenerate the various quickstarts based on archetypes ${HUMAN_READABLE_ARCHETYPES}
-m Generate html versions of markdown readmes
-h Shows this message
EOF
}
update()
{
cd $DIR/../
echo "Updating versions from $OLDVERSION TO $NEWVERSION for all Java and XML files under $PWD"
perl -pi -e "s/${OLDVERSION}/${NEWVERSION}/g" `find . -name \*.xml -or -name \*.java`
}
markdown_to_html()
{
cd $DIR/../
readmes=`find . -iname readme.md -or -iname contributing.md`
echo $readmes
for readme in $readmes
do
output_filename=${readme//.md/.html}
output_filename=${output_filename//.MD/.html}
$DIR/github-flavored-markdown.rb $readme > $output_filename
done
}
regenerate()
{
TMPDIR="$DIR/target/regen"
ROOTDIR="$DIR/../"
rm -rf $TMPDIR
mkdir -p $TMPDIR
cd $TMPDIR
element_count=${#ARCHETYPES[@]}
index=0
while [ "$index" -lt "$element_count" ]
do
archetype=${ARCHETYPES[index]}
quickstart=${QUICKSTARTS[index]}
package=${quickstart//-/_}
name="JBoss AS Quickstarts: $quickstart"
echo "**** Regenerating $quickstart from $archetype"
mvn archetype:generate -DarchetypeGroupId=org.jboss.spec.archetypes -DarchetypeArtifactId=$archetype -DarchetypeVersion=$VERSION -DartifactId=jboss-as-$quickstart -DgroupId=org.jboss.as.quickstarts -Dpackage=org.jboss.as.quickstarts.$package -Dversion=$VERSION -DinteractiveMode=false -Dname="${name}"
((index++))
rm -rf $ROOTDIR/$quickstart
mv $TMPDIR/jboss-as-$quickstart $ROOTDIR/$quickstart
done
}
OLDVERSION="1.0.0-SNAPSHOT"
NEWVERSION="1.0.0-SNAPSHOT"
VERSION="1.0.0-SNAPSHOT"
CMD="usage"
while getopts “muo:n:r:” OPTION
do
case $OPTION in
u)
CMD="update"
;;
h)
usage
exit
;;
o)
OLDVERSION=$OPTARG
;;
n)
NEWVERSION=$OPTARG
;;
r)
CMD="regenerate"
VERSION=$OPTARG
;;
m)
CMD="markdown_to_html"
;;
[?])
usage
exit
;;
esac
done
$CMD