xref: /aosp_15_r20/tools/netsim/scripts/version_bump.sh (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker# Copyright 2022 The Android Open Source Project
2*cf78ab8cSAndroid Build Coastguard Worker#
3*cf78ab8cSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*cf78ab8cSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*cf78ab8cSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*cf78ab8cSAndroid Build Coastguard Worker#
7*cf78ab8cSAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
8*cf78ab8cSAndroid Build Coastguard Worker#
9*cf78ab8cSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*cf78ab8cSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*cf78ab8cSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cf78ab8cSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*cf78ab8cSAndroid Build Coastguard Worker# limitations under the License.
14*cf78ab8cSAndroid Build Coastguard Worker
15*cf78ab8cSAndroid Build Coastguard Worker#!/usr/bin/env bash
16*cf78ab8cSAndroid Build Coastguard Worker#
17*cf78ab8cSAndroid Build Coastguard Worker# Bump the version.
18*cf78ab8cSAndroid Build Coastguard Worker#
19*cf78ab8cSAndroid Build Coastguard Worker# The CARGO_PKG_VERSION is not available for Android.bp builds
20*cf78ab8cSAndroid Build Coastguard Worker# so bump versions using a script.
21*cf78ab8cSAndroid Build Coastguard Worker#
22*cf78ab8cSAndroid Build Coastguard Worker
23*cf78ab8cSAndroid Build Coastguard Worker# Absolute path to this script
24*cf78ab8cSAndroid Build Coastguard WorkerSCRIPT=$(dirname $(readlink -f "$0"))
25*cf78ab8cSAndroid Build Coastguard Workerexport CARGO=$SCRIPT/../rust/daemon/Cargo.toml
26*cf78ab8cSAndroid Build Coastguard Workerexport CARGO_CLI=$SCRIPT/../rust/cli/Cargo.toml
27*cf78ab8cSAndroid Build Coastguard Workerexport CARGO_COMMON=$SCRIPT/../rust/common/Cargo.toml
28*cf78ab8cSAndroid Build Coastguard Workerexport VERSION=$SCRIPT/../rust/daemon/src/version.rs
29*cf78ab8cSAndroid Build Coastguard Workerpython <<EOF
30*cf78ab8cSAndroid Build Coastguard Workerimport re
31*cf78ab8cSAndroid Build Coastguard Workerimport os
32*cf78ab8cSAndroid Build Coastguard Worker
33*cf78ab8cSAndroid Build Coastguard Workerm = None
34*cf78ab8cSAndroid Build Coastguard Workerfor cargo in [os.environ["CARGO_COMMON"], os.environ["CARGO_CLI"], os.environ["CARGO"]]:
35*cf78ab8cSAndroid Build Coastguard Worker    with open(cargo, "r+") as f:
36*cf78ab8cSAndroid Build Coastguard Worker
37*cf78ab8cSAndroid Build Coastguard Worker        version = re.compile(r'^version\s=\s"(\d+)\.(\d+)\.(\d+)"$')
38*cf78ab8cSAndroid Build Coastguard Worker
39*cf78ab8cSAndroid Build Coastguard Worker        lines = f.readlines()
40*cf78ab8cSAndroid Build Coastguard Worker        for i, line in enumerate(lines):
41*cf78ab8cSAndroid Build Coastguard Worker            # Check if the line contains the string "version = "
42*cf78ab8cSAndroid Build Coastguard Worker            # and replace
43*cf78ab8cSAndroid Build Coastguard Worker            m = version.match(line)
44*cf78ab8cSAndroid Build Coastguard Worker            if m:
45*cf78ab8cSAndroid Build Coastguard Worker                lines[i] = 'version = "{0}.{1}.{2}"\n'.format(m[1], m[2], int(m[3]) + 1)
46*cf78ab8cSAndroid Build Coastguard Worker                break
47*cf78ab8cSAndroid Build Coastguard Worker
48*cf78ab8cSAndroid Build Coastguard Worker        f.seek(0)
49*cf78ab8cSAndroid Build Coastguard Worker        f.writelines(lines)
50*cf78ab8cSAndroid Build Coastguard Worker
51*cf78ab8cSAndroid Build Coastguard Workerwith open(os.environ["VERSION"], "r+") as f:
52*cf78ab8cSAndroid Build Coastguard Worker        lines = f.readlines()
53*cf78ab8cSAndroid Build Coastguard Worker        for i, line in enumerate(lines):
54*cf78ab8cSAndroid Build Coastguard Worker            if line.startswith("pub const VERSION"):
55*cf78ab8cSAndroid Build Coastguard Worker               lines[i] = 'pub const VERSION: &str = "{0}.{1}.{2}";\n'.format(
56*cf78ab8cSAndroid Build Coastguard Worker                          m[1], m[2], (int(m[3]) + 1))
57*cf78ab8cSAndroid Build Coastguard Worker               break
58*cf78ab8cSAndroid Build Coastguard Worker
59*cf78ab8cSAndroid Build Coastguard Worker        f.seek(0)
60*cf78ab8cSAndroid Build Coastguard Worker        f.writelines(lines)
61*cf78ab8cSAndroid Build Coastguard Worker
62*cf78ab8cSAndroid Build Coastguard WorkerEOF
63