Project

General

Profile

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"
(8-8/62)