#!/bin/bash DEVICES_LIST="$(adb devices -l)" echo "${DEVICES_LIST}" filter_out() { local -n dev_string=${1} [[ ${dev_string} =~ List* ]] && dev_string="" return 0 } LOG_ROOT="log_capture/session_stats/" CLEAN_LOGS="no" while true; do read -p "clean logs on device after fetch? [Y/n]" yn case $yn in [Y|Yes|y|yes]* ) CLEAN_LOGS="yes" break ;; [N|No|n|no]* ) break ;; *) echo "answer Y(es) or N(no) (short y/n or yes/no)" ;; esac done echo "${DEVICES_LIST}" | while IFS= read -r DEV; do SERIAL="$(echo "${DEV}" | awk '{print $1}')" filter_out SERIAL [ -z "${SERIAL}" ] && continue # echo "Device: ${DEV}" # echo "Serial: ${SERIAL}" adb -s "${SERIAL}" shell run-as com.foxx.androidcast ls files/session_stats/ LOG_PATH="${LOG_ROOT}/${SERIAL}/" echo "------------ dumping in ${LOG_PATH}" mkdir -p "${LOG_PATH}" for f in $(adb -s ${SERIAL} shell run-as com.foxx.androidcast ls files/session_stats/); do adb -s ${SERIAL} exec-out run-as com.foxx.androidcast cat "files/session_stats/$f" > "${LOG_PATH}/$f" [[ "no" != "${CLEAN_LOGS}" ]] && adb -s ${SERIAL} shell run-as com.foxx.androidcast rm -f "files/session_stats/$f" done done echo "run './gradlew :session-studio:run' to analyze logs; find the latest logs in ${LOG_ROOT}"