#!/bin/bash # Verify required environment variables are set required_vars=( "CONTACT1_DID" "CONTACT1_KEY" "CONTACT2_DID" "CONTACT2_KEY" "ISSUER_DID" "ISSUER_KEY" "CONTACTS_JSON" ) for var in "${required_vars[@]}"; do if [ -z "${!var}" ]; then echo "Error: $var is not set" echo "Please run: source .generated/test-env.sh" exit 1 fi done # Color definitions BLUE='\033[0;34m' GREEN='\033[0;32m' YELLOW='\033[1;33m' PURPLE='\033[0;35m' CYAN='\033[0;36m' NC='\033[0m' # No Color BOLD='\033[1m' # Parse command line arguments TIMEOUT=5 ALL_TESTS=false TEST_MODE=${TEST_MODE:-execute} # Default to execute mode while getopts "t:a" opt; do case $opt in t) TIMEOUT=$OPTARG ;; a) ALL_TESTS=true ;; \?) echo "Invalid option: -$OPTARG" >&2; exit 1 ;; esac done # Check for adb and connected devices if [ "$TEST_MODE" = "execute" ]; then if ! command -v adb >/dev/null 2>&1; then echo "Warning: adb not found, switching to print mode" TEST_MODE=print elif [ -z "$(adb devices | grep -v List | grep device)" ]; then echo "Warning: no devices/emulators found, switching to print mode" TEST_MODE=print fi fi # Function to encode URL parameters urlencode() { local string="${1}" local strlen=${#string} local encoded="" local pos c o for (( pos=0 ; pos