1
|
#!/bin/bash
|
2
|
set -e
|
3
|
|
4
|
echo -n "Enter the version for this release: "
|
5
|
|
6
|
read ver
|
7
|
|
8
|
if [ ! $ver ]; then
|
9
|
echo "Invalid version."
|
10
|
exit
|
11
|
fi
|
12
|
|
13
|
name="select2"
|
14
|
js="$name.js"
|
15
|
mini="$name.min.js"
|
16
|
css="$name.css"
|
17
|
release="$name-$ver"
|
18
|
tag="$ver"
|
19
|
branch="build-$ver"
|
20
|
curbranch=`git branch | grep "*" | sed "s/* //"`
|
21
|
timestamp=$(date)
|
22
|
tokens="s/@@ver@@/$ver/g;s/\@@timestamp@@/$timestamp/g"
|
23
|
remote="origin"
|
24
|
|
25
|
echo "Pulling from origin"
|
26
|
|
27
|
git pull
|
28
|
|
29
|
echo "Updating Version Identifiers"
|
30
|
|
31
|
sed -E -e "s/\"version\": \"([0-9\.]+)\",/\"version\": \"$ver\",/g" -i -- bower.json select2.jquery.json component.json composer.json package.json
|
32
|
|
33
|
git add bower.json
|
34
|
git add select2.jquery.json
|
35
|
git add component.json
|
36
|
git add composer.json
|
37
|
git add package.json
|
38
|
|
39
|
git commit -m "modified version identifiers in descriptors for release $ver"
|
40
|
git push
|
41
|
|
42
|
git branch "$branch"
|
43
|
git checkout "$branch"
|
44
|
|
45
|
echo "Tokenizing..."
|
46
|
|
47
|
find . -name "$js" | xargs -I{} sed -e "$tokens" -i -- {}
|
48
|
find . -name "$css" | xargs -I{} sed -e "$tokens" -i -- {}
|
49
|
|
50
|
sed -e "s/latest/$ver/g" -i -- bower.json
|
51
|
|
52
|
git add "$js"
|
53
|
git add "$css"
|
54
|
|
55
|
echo "Minifying..."
|
56
|
|
57
|
echo "/*" > "$mini"
|
58
|
cat LICENSE | sed "$tokens" >> "$mini"
|
59
|
echo "*/" >> "$mini"
|
60
|
|
61
|
curl -s \
|
62
|
--data-urlencode "js_code@$js" \
|
63
|
http://marijnhaverbeke.nl/uglifyjs \
|
64
|
>> "$mini"
|
65
|
|
66
|
git add "$mini"
|
67
|
|
68
|
git commit -m "release $ver"
|
69
|
|
70
|
echo "Tagging..."
|
71
|
git tag -a "$tag" -m "tagged version $ver"
|
72
|
git push "$remote" --tags
|
73
|
|
74
|
echo "Cleaning Up..."
|
75
|
|
76
|
git checkout "$curbranch"
|
77
|
git branch -D "$branch"
|
78
|
|
79
|
echo "Done"
|