1*62c56f98SSadaf Ebrahimi#!/bin/bash 2*62c56f98SSadaf Ebrahimi 3*62c56f98SSadaf Ebrahimiprint_usage() 4*62c56f98SSadaf Ebrahimi{ 5*62c56f98SSadaf Ebrahimi cat <<EOF 6*62c56f98SSadaf EbrahimiUsage: $0 [OPTION]... 7*62c56f98SSadaf EbrahimiPrepare the source tree for a release. 8*62c56f98SSadaf Ebrahimi 9*62c56f98SSadaf EbrahimiOptions: 10*62c56f98SSadaf Ebrahimi -u Prepare for development (undo the release preparation) 11*62c56f98SSadaf EbrahimiEOF 12*62c56f98SSadaf Ebrahimi} 13*62c56f98SSadaf Ebrahimi 14*62c56f98SSadaf Ebrahimi# Copyright The Mbed TLS Contributors 15*62c56f98SSadaf Ebrahimi# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 16*62c56f98SSadaf Ebrahimi 17*62c56f98SSadaf Ebrahimiset -eu 18*62c56f98SSadaf Ebrahimi 19*62c56f98SSadaf Ebrahimiif [ $# -ne 0 ] && [ "$1" = "--help" ]; then 20*62c56f98SSadaf Ebrahimi print_usage 21*62c56f98SSadaf Ebrahimi exit 22*62c56f98SSadaf Ebrahimifi 23*62c56f98SSadaf Ebrahimi 24*62c56f98SSadaf Ebrahimiunrelease= # if non-empty, we're in undo-release mode 25*62c56f98SSadaf Ebrahimiwhile getopts u OPTLET; do 26*62c56f98SSadaf Ebrahimi case $OPTLET in 27*62c56f98SSadaf Ebrahimi u) unrelease=1;; 28*62c56f98SSadaf Ebrahimi \?) 29*62c56f98SSadaf Ebrahimi echo 1>&2 "$0: unknown option: -$OPTLET" 30*62c56f98SSadaf Ebrahimi echo 1>&2 "Try '$0 --help' for more information." 31*62c56f98SSadaf Ebrahimi exit 3;; 32*62c56f98SSadaf Ebrahimi esac 33*62c56f98SSadaf Ebrahimidone 34*62c56f98SSadaf Ebrahimi 35*62c56f98SSadaf Ebrahimi 36*62c56f98SSadaf Ebrahimi 37*62c56f98SSadaf Ebrahimi#### .gitignore processing #### 38*62c56f98SSadaf Ebrahimi 39*62c56f98SSadaf EbrahimiGITIGNORES=$(find . -name ".gitignore") 40*62c56f98SSadaf Ebrahimifor GITIGNORE in $GITIGNORES; do 41*62c56f98SSadaf Ebrahimi if [ -n "$unrelease" ]; then 42*62c56f98SSadaf Ebrahimi sed -i '/###START_COMMENTED_GENERATED_FILES###/,/###END_COMMENTED_GENERATED_FILES###/s/^# //' $GITIGNORE 43*62c56f98SSadaf Ebrahimi sed -i 's/###START_COMMENTED_GENERATED_FILES###/###START_GENERATED_FILES###/' $GITIGNORE 44*62c56f98SSadaf Ebrahimi sed -i 's/###END_COMMENTED_GENERATED_FILES###/###END_GENERATED_FILES###/' $GITIGNORE 45*62c56f98SSadaf Ebrahimi else 46*62c56f98SSadaf Ebrahimi sed -i '/###START_GENERATED_FILES###/,/###END_GENERATED_FILES###/s/^/# /' $GITIGNORE 47*62c56f98SSadaf Ebrahimi sed -i 's/###START_GENERATED_FILES###/###START_COMMENTED_GENERATED_FILES###/' $GITIGNORE 48*62c56f98SSadaf Ebrahimi sed -i 's/###END_GENERATED_FILES###/###END_COMMENTED_GENERATED_FILES###/' $GITIGNORE 49*62c56f98SSadaf Ebrahimi fi 50*62c56f98SSadaf Ebrahimidone 51*62c56f98SSadaf Ebrahimi 52*62c56f98SSadaf Ebrahimi 53*62c56f98SSadaf Ebrahimi 54*62c56f98SSadaf Ebrahimi#### Build scripts #### 55*62c56f98SSadaf Ebrahimi 56*62c56f98SSadaf Ebrahimi# GEN_FILES defaults on (non-empty) in development, off (empty) in releases 57*62c56f98SSadaf Ebrahimiif [ -n "$unrelease" ]; then 58*62c56f98SSadaf Ebrahimi r=' yes' 59*62c56f98SSadaf Ebrahimielse 60*62c56f98SSadaf Ebrahimi r='' 61*62c56f98SSadaf Ebrahimifi 62*62c56f98SSadaf Ebrahimised -i 's/^\(GEN_FILES[ ?:]*=\)\([^#]*\)/\1'"$r/" Makefile */Makefile 63*62c56f98SSadaf Ebrahimi 64*62c56f98SSadaf Ebrahimi# GEN_FILES defaults on in development, off in releases 65*62c56f98SSadaf Ebrahimiif [ -n "$unrelease" ]; then 66*62c56f98SSadaf Ebrahimi r='ON' 67*62c56f98SSadaf Ebrahimielse 68*62c56f98SSadaf Ebrahimi r='OFF' 69*62c56f98SSadaf Ebrahimifi 70*62c56f98SSadaf Ebrahimised -i '/[Oo][Ff][Ff] in development/! s/^\( *option *( *GEN_FILES *"[^"]*" *\)\([A-Za-z0-9][A-Za-z0-9]*\)/\1'"$r/" CMakeLists.txt 71