| #!/bin/bash |
| |
| print_usage() |
| { |
| cat <<EOF |
| Usage: $0 [OPTION]... |
| Prepare the source tree for a release. |
| |
| Options: |
| -u Prepare for development (undo the release preparation) |
| EOF |
| } |
| |
| # Copyright The Mbed TLS Contributors |
| # SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later |
| |
| set -eu |
| |
| if [ $# -ne 0 ] && [ "$1" = "--help" ]; then |
| print_usage |
| exit |
| fi |
| |
| unrelease= # if non-empty, we're in undo-release mode |
| while getopts u OPTLET; do |
| case $OPTLET in |
| u) unrelease=1;; |
| \?) |
| echo 1>&2 "$0: unknown option: -$OPTLET" |
| echo 1>&2 "Try '$0 --help' for more information." |
| exit 3;; |
| esac |
| done |
| |
| |
| |
| #### .gitignore processing #### |
| |
| GITIGNORES=$(find . -name ".gitignore") |
| for GITIGNORE in $GITIGNORES; do |
| if [ -n "$unrelease" ]; then |
| sed -i '/###START_COMMENTED_GENERATED_FILES###/,/###END_COMMENTED_GENERATED_FILES###/s/^#//' $GITIGNORE |
| sed -i 's/###START_COMMENTED_GENERATED_FILES###/###START_GENERATED_FILES###/' $GITIGNORE |
| sed -i 's/###END_COMMENTED_GENERATED_FILES###/###END_GENERATED_FILES###/' $GITIGNORE |
| else |
| sed -i '/###START_GENERATED_FILES###/,/###END_GENERATED_FILES###/s/^/#/' $GITIGNORE |
| sed -i 's/###START_GENERATED_FILES###/###START_COMMENTED_GENERATED_FILES###/' $GITIGNORE |
| sed -i 's/###END_GENERATED_FILES###/###END_COMMENTED_GENERATED_FILES###/' $GITIGNORE |
| fi |
| done |
| |
| |
| |
| #### Build scripts #### |
| |
| # GEN_FILES defaults on (non-empty) in development, off (empty) in releases |
| if [ -n "$unrelease" ]; then |
| r=' yes' |
| else |
| r='' |
| fi |
| sed -i 's/^\(GEN_FILES[ ?:]*=\)\([^#]*\)/\1'"$r/" Makefile */Makefile |
| |
| # GEN_FILES defaults on in development, off in releases |
| if [ -n "$unrelease" ]; then |
| r='ON' |
| else |
| r='OFF' |
| fi |
| sed -i '/[Oo][Ff][Ff] in development/! s/^\( *option *( *GEN_FILES *"[^"]*" *\)\([A-Za-z0-9][A-Za-z0-9]*\)/\1'"$r/" CMakeLists.txt |