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