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