compose-lobsters/scripts/run-maestro-flows.sh

47 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Get the absolute path to the script file
SCRIPT_DIR="$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd)"
MAESTRO_FLOW="${1:-}"
if [[ -z ${MAESTRO_FLOW} ]]; then
echo "No flow file was provided"
echo "Usage: run-maestro-flows.sh flow.yml"
exit 1
elif [[ ! -f "${SCRIPT_DIR}"/../maestro/"${MAESTRO_FLOW}" ]]; then
echo "Could not find flow ${MAESTRO_FLOW}"
echo "Make sure the flow file is in the maestro directory"
exit 1
fi
# Create a directory for generated screenshots since Maestro puts them iN $PWD
mkdir -p "${SCRIPT_DIR}"/../screenshots
pushd "${SCRIPT_DIR}"/../screenshots || exit 1
# Delete any existing screenshots
rm -rf ./*.png
# Allow demo mode to be enabled
adb shell settings put global sysui_demo_allowed 1
# Enable Demo Mode on the device with the following settings
# - Hide notification icons
# - Set clock to 1200 hrs
adb shell am broadcast -a com.android.systemui.demo \
-e command enter \
-e command notifications -e visible false \
-e command clock -e hhmm 1200
# Clear data for the app to make re-runs consistent
adb shell pm clear dev.msfjarvis.claw.android
# Run the Maestro Flows from $PROJECT_DIR/maestro
maestro test "${SCRIPT_DIR}"/../maestro/"${MAESTRO_FLOW}"
# Turn off Demo Mode on the device
adb shell am broadcast -a com.android.systemui.demo -e command exit
# Return to the original $PWD
popd || exit 1