1*b32fbb63SXin Li#!/bin/bash 2*b32fbb63SXin Li 3*b32fbb63SXin Li# Copyright (C) 2021 The Android Open Source Project 4*b32fbb63SXin Li# 5*b32fbb63SXin Li# Licensed under the Apache License, Version 2.0 (the "License"); 6*b32fbb63SXin Li# you may not use this file except in compliance with the License. 7*b32fbb63SXin Li# You may obtain a copy of the License at 8*b32fbb63SXin Li# 9*b32fbb63SXin Li# http://www.apache.org/licenses/LICENSE-2.0 10*b32fbb63SXin Li# 11*b32fbb63SXin Li# Unless required by applicable law or agreed to in writing, software 12*b32fbb63SXin Li# distributed under the License is distributed on an "AS IS" BASIS, 13*b32fbb63SXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*b32fbb63SXin Li# See the License for the specific language governing permissions and 15*b32fbb63SXin Li# limitations under the License. 16*b32fbb63SXin Li 17*b32fbb63SXin Lireadme() { 18*b32fbb63SXin Li echo ''' 19*b32fbb63SXin LiAdd images listed in INPUT_CSV to Android SDK dir. So you can use them by Android Studio AVD manager. e.g. 20*b32fbb63SXin Li./batch_add_avd_image.sh ./resource/avd_img_list.csv 21*b32fbb63SXin Li''' 22*b32fbb63SXin Li} 23*b32fbb63SXin Li 24*b32fbb63SXin LiMY_NAME=$0 25*b32fbb63SXin LiSCRIPT_NAME="${MY_NAME##*/}" 26*b32fbb63SXin LiSCRIPT_DIR="${MY_NAME%/$SCRIPT_NAME}" 27*b32fbb63SXin Liecho Running from $SCRIPT_DIR 28*b32fbb63SXin Li 29*b32fbb63SXin LiINPUT_CSV=$1 30*b32fbb63SXin Liif [[ -z "${INPUT_CSV}" ]]; then 31*b32fbb63SXin Li INPUT_CSV="$SCRIPT_DIR/resource/avd_img_list.csv" 32*b32fbb63SXin Lifi 33*b32fbb63SXin Li 34*b32fbb63SXin Liecho "Process ${INPUT_CSV}" 35*b32fbb63SXin Liheader=0 36*b32fbb63SXin LiavdCount=0 37*b32fbb63SXin Liwhile IFS=',' read -r name api zip others || [ -n "${name}" ]; do 38*b32fbb63SXin Li if [[ "${name}" == "name" ]]; then 39*b32fbb63SXin Li # skip header 40*b32fbb63SXin Li header="${name},${api},${zip}" 41*b32fbb63SXin Li else 42*b32fbb63SXin Li addAvdImgCmd="VARIANT=${name} API_LEVEL=${api} OEM_AVD_ZIP=${zip} ${SCRIPT_DIR}/add_avd_img.sh" 43*b32fbb63SXin Li echo "${addAvdImgCmd}" 44*b32fbb63SXin Li eval "${addAvdImgCmd}" 45*b32fbb63SXin Li 46*b32fbb63SXin Li createAvdCmd="AVD_IMG_NAME=${name} API_LEVEL=${api} DEFAULT_DEVICE_XML=${SCRIPT_DIR}/resource/devices.xml ${SCRIPT_DIR}/create_avd.sh" 47*b32fbb63SXin Li echo "${createAvdCmd}" 48*b32fbb63SXin Li eval "${createAvdCmd}" 49*b32fbb63SXin Li 50*b32fbb63SXin Li echo 51*b32fbb63SXin Li ((avdCount+=1)) 52*b32fbb63SXin Li fi 53*b32fbb63SXin Lidone < $INPUT_CSV 54*b32fbb63SXin Li 55*b32fbb63SXin Liif [[ $header != "name,api,zip" ]]; then 56*b32fbb63SXin Li readme 57*b32fbb63SXin Li echo "ERROR: The header:$header is not as expected in $INPUT_CSV" 58*b32fbb63SXin Li cat $INPUT_CSV 59*b32fbb63SXin Lifi 60*b32fbb63SXin Li 61*b32fbb63SXin Liecho "Processed ${avdCount} AVDs"