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