This directory contains Python code that allows Chrome OS developers and testers
to make files available for touchpad gesture testing.

The command line tool is modeled very closely on (and depends) on the Google
Storage command line client (gsutil).

CONTENTS:
 - cros_gestures is the command line tool
 - setup_cros_gestures.sh helps establish proper environment variables to find
   both gsutil and the needed .boto file for authentication.
 - run_remote_tool builds a bundle to install on a test machine (and can
   run it on a test machine).
 - remote/install_cros_gestures.py can setup a test machine from the public,
   untrusted bundle.

FOR MORE INFORMATION ON INSTALLING AND USING GSUTIL, SEE:
<http://code.google.com/apis/storage/docs/gsutil.html>.

TO INSTALL GSUTILS:
 - cd ~
 - wget http://commondatastorage.googleapis.com/pub/gsutil.tar.gz
 - gzip -d gsutil.tar.gz
 - tar -xvf gsutil.tar

TO BUILD A TRUSTED PACKAGE TO ./CROS_GESTURES.TAR.BZ2:
 - . ./setup_cros_gestures.sh trusted
 - ./run_remote_tool

TO BUILD AN UNTRUSTED PACKAGE TO ./CROS_GESTURES.TAR.BZ2:
 - . ./setup_cros_gestures.sh untrusted
 - ./run_remote_tool

TO DEPLOY THE BUNDLES:
 - gsutil cp /tmp/cros_gestures.tar.bz2  \
       gs://chromeos-gestures-valid/downloads/untrusted/cros_gestures.tar.bz2
 - gsutil cp /tmp/install_cros_gestures.py  \
       gs://chromeos-gestures-valid/downloads/untrusted/install_cros_gestures.py
 - gsutil setacl public-read \
       gs://chromeos-gestures-valid/downloads/untrusted/cros_gestures.tar.bz2
 - gsutil setacl public-read \
       gs://chromeos-gestures-valid/downloads/untrusted/install_cros_gestures.py

TO INSTALL CROS_GESTURES TO /USR/LOCAL/CROS_GESTURES (TEST MACHINES):
 - cd /tmp
 - wget http://chromeos-gestures-valid.commondatastorage.googleapis.com/downloads/untrusted/install_cros_gestures.py
 - python ./install_cros_gestures.py
