telegram-bot-bash/dev/version.sh

68 lines
1.6 KiB
Bash
Raw Normal View History

2019-04-01 16:24:05 +00:00
#!/bin/bash
#
2020-08-15 07:29:13 +00:00
#### $$VERSION$$ v1.0-0-g99217c4
2019-04-01 16:24:05 +00:00
# shellcheck disable=SC2016
#
# Easy Versioning in git:
#
# for setting your Version in git use e.g.:
# git tag -a v0.5 -m 'Version 0.5'
#
# Push tags upstream—this is not done by default:
# git push --tags
#
# # in case of a wrong tag remove it:
# git tag -d v0.5
#
# delete remote tag (eg, GitHub version)
# git push origin :refs/tags/v0.5
#
# Then use the describe command:
#
# git describe --tags --long
# This gives you a string of the format:
#
# v0.5-0-gdeadbee
# ^ ^ ^^
# | | ||
# | | |'-- SHA of HEAD (first seven chars)
# | | '-- "g" is for git
# | '---- number of commits since last tag
# |
# '--------- last tag
#
# run this script to (re)place Version number in files
#
2019-04-19 08:43:06 +00:00
# magic to ensure that we're always inside the root of our application,
# no matter from which directory we'll run script
GIT_DIR=$(git rev-parse --git-dir 2>/dev/null)
if [ "$GIT_DIR" != "" ] ; then
cd "$GIT_DIR/.." || exit 1
else
echo "Sorry, no git repository $(pwd)" && exit 1
fi
2019-04-19 08:43:06 +00:00
unset IFS
# set -f # if you are paranoid use set -f to disable globbing
2019-04-01 16:24:05 +00:00
VERSION="$(git describe --tags --long)"
2019-04-19 08:43:06 +00:00
echo "Update to version $VERSION ..."
2019-04-19 15:31:01 +00:00
FILES="$(find ./*)"
[ "$1" != "" ] && FILES="$*"
for file in $FILES
do
[ ! -f "$file" ] && continue
#[ "$file" == "version" ] && continue
2019-04-19 08:43:06 +00:00
echo -n " $file" >&2
2019-04-01 16:24:05 +00:00
sed -i 's/^#### $$VERSION$$.*/#### \$\$VERSION\$\$ '"$VERSION"'/' "$file"
done
# try to compile README.txt
2019-04-19 08:43:06 +00:00
echo -n " README.txt" >&2
2019-12-07 12:59:54 +00:00
type -f pandoc >/dev/null && pandoc -s -f commonmark -M "title=Bashbot README" README.md >README.html
2019-04-28 07:54:51 +00:00
fold -s README.md >README.txt
echo " done."