1*333d2b36SAndroid Build Coastguard Worker#!/bin/bash -e 2*333d2b36SAndroid Build Coastguard Worker# Copyright (C) 2023 The Android Open Source Project 3*333d2b36SAndroid Build Coastguard Worker# 4*333d2b36SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*333d2b36SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*333d2b36SAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*333d2b36SAndroid Build Coastguard Worker# 8*333d2b36SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*333d2b36SAndroid Build Coastguard Worker# 10*333d2b36SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*333d2b36SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*333d2b36SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*333d2b36SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*333d2b36SAndroid Build Coastguard Worker# limitations under the License. 15*333d2b36SAndroid Build Coastguard Worker 16*333d2b36SAndroid Build Coastguard Worker 17*333d2b36SAndroid Build Coastguard Workersource $(cd $(dirname $BASH_SOURCE) &> /dev/null && pwd)/../../make/shell_utils.sh 18*333d2b36SAndroid Build Coastguard Worker 19*333d2b36SAndroid Build Coastguard Workerrequire_top 20*333d2b36SAndroid Build Coastguard Worker 21*333d2b36SAndroid Build Coastguard Workerfunction print_help() { 22*333d2b36SAndroid Build Coastguard Worker echo -e "overrideflags is used to set default value for local build." 23*333d2b36SAndroid Build Coastguard Worker echo -e "\nOptions:" 24*333d2b36SAndroid Build Coastguard Worker echo -e "\t--release-config \tPath to release configuration directory. Required" 25*333d2b36SAndroid Build Coastguard Worker echo -e "\t--no-edit \tIf present, skip editing flag value file." 26*333d2b36SAndroid Build Coastguard Worker echo -e "\t-h/--help \tShow this help." 27*333d2b36SAndroid Build Coastguard Worker} 28*333d2b36SAndroid Build Coastguard Worker 29*333d2b36SAndroid Build Coastguard Workerfunction main() { 30*333d2b36SAndroid Build Coastguard Worker while (($# > 0)); do 31*333d2b36SAndroid Build Coastguard Worker case $1 in 32*333d2b36SAndroid Build Coastguard Worker --release-config) 33*333d2b36SAndroid Build Coastguard Worker if [[ $# -le 1 ]]; then 34*333d2b36SAndroid Build Coastguard Worker echo "--release-config requires a path" 35*333d2b36SAndroid Build Coastguard Worker return 1 36*333d2b36SAndroid Build Coastguard Worker fi 37*333d2b36SAndroid Build Coastguard Worker local release_config_dir="$2" 38*333d2b36SAndroid Build Coastguard Worker shift 2 39*333d2b36SAndroid Build Coastguard Worker ;; 40*333d2b36SAndroid Build Coastguard Worker --no-edit) 41*333d2b36SAndroid Build Coastguard Worker local no_edit="true" 42*333d2b36SAndroid Build Coastguard Worker shift 1 43*333d2b36SAndroid Build Coastguard Worker ;; 44*333d2b36SAndroid Build Coastguard Worker -h|--help) 45*333d2b36SAndroid Build Coastguard Worker print_help 46*333d2b36SAndroid Build Coastguard Worker return 47*333d2b36SAndroid Build Coastguard Worker ;; 48*333d2b36SAndroid Build Coastguard Worker *) 49*333d2b36SAndroid Build Coastguard Worker echo "$1 is unrecognized" 50*333d2b36SAndroid Build Coastguard Worker print_help 51*333d2b36SAndroid Build Coastguard Worker return 1 52*333d2b36SAndroid Build Coastguard Worker ;; 53*333d2b36SAndroid Build Coastguard Worker esac 54*333d2b36SAndroid Build Coastguard Worker done 55*333d2b36SAndroid Build Coastguard Worker 56*333d2b36SAndroid Build Coastguard Worker 57*333d2b36SAndroid Build Coastguard Worker 58*333d2b36SAndroid Build Coastguard Worker case $(uname -s) in 59*333d2b36SAndroid Build Coastguard Worker Darwin) 60*333d2b36SAndroid Build Coastguard Worker local host_arch=darwin-x86 61*333d2b36SAndroid Build Coastguard Worker ;; 62*333d2b36SAndroid Build Coastguard Worker Linux) 63*333d2b36SAndroid Build Coastguard Worker local host_arch=linux-x86 64*333d2b36SAndroid Build Coastguard Worker ;; 65*333d2b36SAndroid Build Coastguard Worker *) 66*333d2b36SAndroid Build Coastguard Worker >&2 echo Unknown host $(uname -s) 67*333d2b36SAndroid Build Coastguard Worker return 68*333d2b36SAndroid Build Coastguard Worker ;; 69*333d2b36SAndroid Build Coastguard Worker esac 70*333d2b36SAndroid Build Coastguard Worker 71*333d2b36SAndroid Build Coastguard Worker if [[ -z "${release_config_dir}" ]]; then 72*333d2b36SAndroid Build Coastguard Worker echo "Please provide release configuration path by --release-config" 73*333d2b36SAndroid Build Coastguard Worker exit 1 74*333d2b36SAndroid Build Coastguard Worker elif [ ! -d "${release_config_dir}" ]; then 75*333d2b36SAndroid Build Coastguard Worker echo "${release_config_dir} is an invalid directory" 76*333d2b36SAndroid Build Coastguard Worker exit 1 77*333d2b36SAndroid Build Coastguard Worker fi 78*333d2b36SAndroid Build Coastguard Worker local T="$(gettop)" 79*333d2b36SAndroid Build Coastguard Worker local aconfig_dir="${T}"/build/make/tools/aconfig/ 80*333d2b36SAndroid Build Coastguard Worker local overrideflag_py="${aconfig_dir}"/overrideflags/overrideflags.py 81*333d2b36SAndroid Build Coastguard Worker local overridefile="${release_config_dir}/aconfig/override_values.textproto" 82*333d2b36SAndroid Build Coastguard Worker 83*333d2b36SAndroid Build Coastguard Worker # Edit override file 84*333d2b36SAndroid Build Coastguard Worker if [[ -z "${no_edit}" ]]; then 85*333d2b36SAndroid Build Coastguard Worker editor="${EDITOR:-$(which vim)}" 86*333d2b36SAndroid Build Coastguard Worker 87*333d2b36SAndroid Build Coastguard Worker eval "${editor} ${overridefile}" 88*333d2b36SAndroid Build Coastguard Worker if [ $? -ne 0 ]; then 89*333d2b36SAndroid Build Coastguard Worker echo "Fail to set override values" 90*333d2b36SAndroid Build Coastguard Worker return 1 91*333d2b36SAndroid Build Coastguard Worker fi 92*333d2b36SAndroid Build Coastguard Worker fi 93*333d2b36SAndroid Build Coastguard Worker 94*333d2b36SAndroid Build Coastguard Worker ${T}/prebuilts/build-tools/${host_arch}/bin/py3-cmd -u "${overrideflag_py}" \ 95*333d2b36SAndroid Build Coastguard Worker --overrides "${overridefile}" \ 96*333d2b36SAndroid Build Coastguard Worker --out "${release_config_dir}/aconfig" 97*333d2b36SAndroid Build Coastguard Worker} 98*333d2b36SAndroid Build Coastguard Worker 99*333d2b36SAndroid Build Coastguard Worker 100*333d2b36SAndroid Build Coastguard Workermain "$@" 101