#!/bin/sh

# Hack to make ring/vibrate work right
# This permanently changes this setting, but it's easy to change back...
echo 'ring-mode: on
vibrate-mode: on' |./startalk -s -w

origst="`./startalk -s -r`"
cat settings.test |while read setting val1 val2 val3 val4 val5 val6 val7 val8 val9
do
  echo "***** Testing $setting"
  lastst="`./startalk -s -r`"
  ec=$?
  if [ "$ec" -ne 0 ]
  then
    echo "startalk exited with code $ec"
    exit $ec
  fi
  orig="`echo "$lastst" |grep "^$setting:" |sed -e 's/^[^:]*: *//'`"
  if [ -z "$orig" ]
  then
    if [ "$setting" != "greeting" ] 
    then
      echo "WARNING: Couldn't read original value.  Skipping..."
      continue
    fi
  fi
  echo "  Original setting: '$orig'"

  for var in val1 val2 val3 val4 val5 val6 val7 val8 val9 orig
  do
    val=""
    val=`eval echo "\\\$$var"`
    if [ -n "$val" ]
    then
      echo "  Trying setting $var: '$val'"
      echo "$setting: $val" |./startalk -s -w
      ec=$?
      if [ "$ec" -ne 0 ]
      then
        echo "startalk exited with code $ec"
        exit $ec
      fi

      echo "  Verifying setting"
      lastst="`./startalk -s -r`"
      ec=$?
      if [ "$ec" -ne 0 ]
      then
        echo "startalk exited with code $ec"
        exit $ec
      fi
      new="`echo "$lastst" |grep "^$setting:" |sed -e 's/^[^:]*: *//'`"
      if [ "$val" != "$new" ]
      then
        echo "WARNING: Settings don't match on read ('$val' != '$new')"
      fi
      echo -n "Check setting on phone, and hit ENTER when done. > "
      read blah </dev/tty
      echo
    fi
  done
  if [ "$origst" != "$lastst" ]
  then
    echo "WARNING: Something else changed during this test!"
  fi
done
