encfs/vendor/github.com/muflihun/easyloggingpp/tools/release.sh

80 lines
3.1 KiB
Bash
Raw Normal View History

#!/bin/bash
# Bash script that helps with releasing new versions of EasyLogging++
# Revision: 1.4
# @author mkhan3189
#
# Usage:
# ./release.sh [repo-root] [homepage-repo-root] [curr-version] [new-version] [do-not-ask]
if [ "$1" = "" ];then
echo
echo "Usage: $0 [repository-root] [homepage-root] [curr-version] [new-version] [do-not-ask]"
echo
exit 1
fi
if [ -f "$1/tools/release.sh" ];then
[ -d "$2/releases/" ] || mkdir $2/releases/
else
echo "Invalid repository root"
exit 1
fi
CURR_VERSION=$3
CURR_RELEASE_DATE=$(grep -o '[0-9][0-9]-[0-9][0-9]-201[2-9] [0-9][0-9][0-9][0-9]hrs' $1/src/easylogging++.cc)
NEW_RELEASE_DATE=$(date +"%d-%m-%Y %H%Mhrs")
NEW_RELEASE_DATE_SIMPLE=$(date +"%d-%m-%Y")
NEW_VERSION=$4
DO_NOT_CONFIRM=$5
if [ "$NEW_VERSION" = "" ]; then
echo 'Current Version ' $CURR_VERSION
echo '** No version provided **'
exit
fi
echo 'Current Version ' $CURR_VERSION ' (' $CURR_RELEASE_DATE ')'
echo 'New Version ' $NEW_VERSION ' (' $NEW_RELEASE_DATE ')'
if [ "$DO_NOT_CONFIRM" = "y" ]; then
confirm="y"
else
echo "Are you sure you wish to release new version [$CURR_VERSION -> $NEW_VERSION]? (y/n)"
read confirm
fi
if [ "$confirm" = "y" ]; then
sed -i '' -e "s/Easylogging++ v$CURR_VERSION*/Easylogging++ v$NEW_VERSION/g" $1/src/easylogging++.h
sed -i '' -e "s/Easylogging++ v$CURR_VERSION*/Easylogging++ v$NEW_VERSION/g" $1/src/easylogging++.cc
sed -i '' -e "s/Easylogging++ v$CURR_VERSION*/Easylogging++ v$NEW_VERSION/g" $1/README.md
sed -i '' -e "s/return std::string(\"$CURR_VERSION\");/return std\:\:string(\"$NEW_VERSION\");/g" $1/src/easylogging++.cc
sed -i '' -e "s/return std::string(\"$CURR_RELEASE_DATE\");/return std\:\:string(\"$NEW_RELEASE_DATE\");/g" $1/src/easylogging++.cc
sed -i '' -e "s/\[Unreleased\]/\[$NEW_VERSION\] - $NEW_RELEASE_DATE_SIMPLE/g" $1/CHANGELOG.md
astyle $1/src/easylogging++.h --style=google --indent=spaces=2 --max-code-length=120
astyle $1/src/easylogging++.cc --style=google --indent=spaces=2 --max-code-length=120
if [ -f "$1/src/easylogging++.h.orig" ];then
rm $1/src/easylogging++.h.orig
fi
if [ -f "$1/src/easylogging++.cc.orig" ];then
rm $1/src/easylogging++.cc.orig
fi
sed -i '' -e "s/$CURR_VERSION ($CURR_RELEASE_DATE)/$NEW_VERSION ($NEW_RELEASE_DATE)/g" $2/index.html
sed -i '' -e "s/$CURR_VERSION/$NEW_VERSION/g" $1/README.md
sed -i '' -e "s/easyloggingpp_$CURR_VERSION.zip/easyloggingpp_$NEW_VERSION.zip/g" $1/README.md
if [ -f "easyloggingpp_v$NEW_VERSION.zip" ]; then
rm easyloggingpp_v$NEW_VERSION.zip
fi
if [ -f "easyloggingpp.zip" ]; then
rm easyloggingpp.zip
fi
cp $1/src/easylogging++.h .
cp $1/src/easylogging++.cc .
cp $1/CHANGELOG.md CHANGELOG.txt
cp $1/LICENCE LICENCE.txt
zip easyloggingpp_v$NEW_VERSION.zip easylogging++.h easylogging++.cc LICENCE.txt CHANGELOG.txt
tar -pczf easyloggingpp_v$NEW_VERSION.tar.gz easylogging++.h easylogging++.cc LICENCE.txt CHANGELOG.txt
mv easyloggingpp_v$NEW_VERSION.zip $2/
mv easyloggingpp_v$NEW_VERSION.tar.gz $2/
rm easylogging++.h easylogging++.cc CHANGELOG.txt LICENCE.txt
echo "\n---------- PLEASE CHANGE CMakeLists.txt MANUALLY ----------- \n"
fi