|
| 1 | +#!/usr/bin/env bash |
| 2 | + |
| 3 | +# This script updates release version number in all source files. |
| 4 | +# |
| 5 | +# updates occurences like "version = '??.??'" where ??.?? is the version number |
| 6 | +# updates occurences like "WarpX v??.??" where ??.?? is the version number |
| 7 | +# |
| 8 | +# Requirements: |
| 9 | +# - gnu grep (default grep on MacOS does not have same -P option) |
| 10 | +# - gnu sed (default grep on MacOS does not have same -i option) |
| 11 | + |
| 12 | +set -e |
| 13 | + |
| 14 | +# Get old tag number from git |
| 15 | +git_tag=`git describe --tags` |
| 16 | +old_release_number="${git_tag%%-*}" |
| 17 | + |
| 18 | +# Construct new tag number from current date |
| 19 | +d=`date +%Y.%m` |
| 20 | +new_release_number=${d:2} |
| 21 | + |
| 22 | +echo "Replace release number $old_release_number by $new_release_number" |
| 23 | + |
| 24 | +# Loop over files and sed patterns with version number |
| 25 | +pattern="\.c$|\.cpp$|\.F90$|\.h$|\.H$|\.ini$|\.md$|\.py$|"\ |
| 26 | +"\.rst$|\.sh$|\.tex$|\.txt$|\.xml$|\.yml$|"\ |
| 27 | +"CMakeLists\.txt|inputs" |
| 28 | +for i in $(find .. \ |
| 29 | + -not -path "../.git/*" \ |
| 30 | + -not -path "../.idea/*" \ |
| 31 | + -not -path "../Docs/source/api/*" \ |
| 32 | + -not -path "../Docs/build/*" \ |
| 33 | + -not -path "../Docs/doxyxml/*" \ |
| 34 | + -not -path "*wp_parse*" \ |
| 35 | + -not -path "../tmp_build_dir/*" \ |
| 36 | + -type f | \ |
| 37 | + grep -P "${pattern}") |
| 38 | +do |
| 39 | + echo $i |
| 40 | + # update occurences like "version = '??.??'" where ??.?? is the version number |
| 41 | + # Note: sleep is required due to a bug in sed: without, the file |
| 42 | + # permissions are modified |
| 43 | + sed -i "s/version = "\'"$old_release_number"\'"/version = "\'"$new_release_number"\'"/g" $i && sleep .001 |
| 44 | + # update occurences like "WarpX v??.??" where ??.?? is the version number |
| 45 | + sed -i "s/WarpX v$old_release_number/WarpX v$new_release_number/g" $i && sleep .001 |
| 46 | +done |
| 47 | + |
| 48 | +echo "" |
| 49 | +echo "WARNING: Remaining occurences of $old_release_number are listed below." |
| 50 | +echo " Is this expected? Or should these be updated too?" |
| 51 | +echo "" |
| 52 | +git grep "$old_release_number" . |
0 commit comments