#!/bin/bash # Copyright (C) 2021 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. readme() { echo ''' Add images listed in INPUT_CSV to Android SDK dir. So you can use them by Android Studio AVD manager. e.g. ./batch_add_avd_image.sh ./resource/avd_img_list.csv ''' } MY_NAME=$0 SCRIPT_NAME="${MY_NAME##*/}" SCRIPT_DIR="${MY_NAME%/$SCRIPT_NAME}" echo Running from $SCRIPT_DIR INPUT_CSV=$1 if [[ -z "${INPUT_CSV}" ]]; then INPUT_CSV="$SCRIPT_DIR/resource/avd_img_list.csv" fi echo "Process ${INPUT_CSV}" header=0 avdCount=0 while IFS=',' read -r name api zip others || [ -n "${name}" ]; do if [[ "${name}" == "name" ]]; then # skip header header="${name},${api},${zip}" else addAvdImgCmd="VARIANT=${name} API_LEVEL=${api} OEM_AVD_ZIP=${zip} ${SCRIPT_DIR}/add_avd_img.sh" echo "${addAvdImgCmd}" eval "${addAvdImgCmd}" createAvdCmd="AVD_IMG_NAME=${name} API_LEVEL=${api} DEFAULT_DEVICE_XML=${SCRIPT_DIR}/resource/devices.xml ${SCRIPT_DIR}/create_avd.sh" echo "${createAvdCmd}" eval "${createAvdCmd}" echo ((avdCount+=1)) fi done < $INPUT_CSV if [[ $header != "name,api,zip" ]]; then readme echo "ERROR: The header:$header is not as expected in $INPUT_CSV" cat $INPUT_CSV fi echo "Processed ${avdCount} AVDs"