47 lines
1.4 KiB
Bash
Executable File
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
|