xref: /aosp_15_r20/external/mbedtls/scripts/prepare_release.sh (revision 62c56f9862f102b96d72393aff6076c951fb8148)
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