76 lines
2.0 KiB
Bash
Executable File
76 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# vim: expandtab sw=4 ts=4 sts=4:
|
|
#
|
|
# This requires Bash for the search and replace substitution to escape dots
|
|
|
|
# Do not run as CGI
|
|
if [ -n "$GATEWAY_INTERFACE" ] ; then
|
|
echo 'Can not invoke as CGI!'
|
|
exit 1
|
|
fi
|
|
|
|
# Fail on undefined variables
|
|
set -u
|
|
# Fail on failure
|
|
set -e
|
|
|
|
printHelp () {
|
|
echo
|
|
echo "Please pass the new version number as a command line argument such as"
|
|
echo "$0 -v 5.0.0-dev"
|
|
echo
|
|
}
|
|
|
|
if [ $# -eq 0 ]
|
|
then
|
|
printHelp
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$1" = '-v' ]
|
|
then
|
|
newVersion=$2
|
|
else
|
|
printHelp
|
|
exit 2
|
|
fi
|
|
|
|
# If we're in the scripts directory, we need to do all our work up a directory level
|
|
if [ "$(basename "$(pwd)")" = 'scripts' ]
|
|
then
|
|
dir='../'
|
|
else
|
|
dir=''
|
|
fi
|
|
|
|
# There are half a dozen ways to do this, including individually recreating the line of
|
|
# each file (search for 'version =' in conf.py and replace it with 'version = 5.0.0-dev'
|
|
# for instance), and while that's more precise this should work with less to fix if a line changes.
|
|
# This method wasn't selected for any particular strength.
|
|
|
|
oldVersion="$(grep 'version =' ${dir}doc/conf.py | cut -d "'" -f2)"
|
|
|
|
echo "Changing from ${oldVersion} to ${newVersion}..."
|
|
|
|
# Escape the dot for sed
|
|
oldVersion=${oldVersion//./\.}
|
|
newVersion=${newVersion//./\.}
|
|
|
|
for f in README doc/conf.py package.json
|
|
do
|
|
if ! grep --quiet "${oldVersion}" "${dir}${f}"
|
|
then
|
|
# There may be a better way to test for a failure of the substitution itself, such as using the 'q' directive with sed
|
|
# See https://stackoverflow.com/questions/15965073/return-code-of-sed-for-no-match
|
|
echo "FAILED! Substitution string ${oldVersion} not found in ${dir}${f}"
|
|
fi
|
|
sed -i "s/${oldVersion}/${newVersion}/g" "${dir}${f}"
|
|
done
|
|
|
|
|
|
echo
|
|
echo "Next, you need to manually edit ChangeLog to manually change the version number and set the release date, and verify the changes with 'git diff'."
|
|
echo "You will probably want to call: \"./scripts/console set-version ${newVersion}\" afterwards"
|
|
echo "Suggested commit message: Prepare for version ${newVersion}"
|