| # |
| # Copyright 2008 Google Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| ## |
| ## Source this script into your shell: |
| ## |
| ## . test-utils.sh |
| ## |
| ## so that you can run: |
| ## |
| ## gerrit clean |
| ## gerrit reset |
| ## gerrit gae |
| ## gerrit crm |
| ## |
| ## to setup a local testing environment using the Google App Engine |
| ## SDK and a local Java installation. |
| ## |
| |
| TEST_DIR=test |
| TEST_CRM_DATA_DIR=$TEST_DIR/crm-data |
| TEST_GERRIT_DATASTORE_DIR=$TEST_DIR/gerrit-datastore |
| |
| TEST_CLIENT0=$TEST_DIR/client0 |
| TEST_CLIENT1=$TEST_DIR/client1 |
| TEST_LOCAL_CONFIG=$TEST_DIR/localhost.config |
| |
| TEST_CRM_PASSWORD_FILE=$TEST_DIR/.crm-password |
| |
| function gerrit-clean() |
| { |
| rm -rf $TEST_DIR |
| } |
| |
| function gerrit-reset() |
| { |
| FULL_GIT_BASE=`pwd`/$TEST_CRM_DATA_DIR |
| |
| # delete the old data |
| gerrit-clean |
| |
| # make the crm data |
| FULL_CRM_DATA_FILE=`pwd`/crm-data.tar.gz |
| mkdir -p $TEST_DIR/crm-data |
| ( cd $TEST_CRM_DATA_DIR ; tar zxf $FULL_CRM_DATA_FILE ) |
| |
| # make two git clients (should use repo) |
| mkdir -p $TEST_CLIENT0 |
| ( cd $TEST_CLIENT0 ; git clone $FULL_GIT_BASE/test.git > /dev/null) |
| mkdir -p $TEST_CLIENT1 |
| ( cd $TEST_CLIENT1 ; git clone $FULL_GIT_BASE/test.git > /dev/null) |
| |
| make all |
| |
| # make localhost.config |
| echo "[user]" > $TEST_LOCAL_CONFIG |
| echo " name = Gerrit Code Review" >> $TEST_LOCAL_CONFIG |
| echo " email = gerrit@localhost" >> $TEST_LOCAL_CONFIG |
| echo "" >> $TEST_LOCAL_CONFIG |
| echo "[codereview]" >> $TEST_LOCAL_CONFIG |
| echo " server = http://localhost:8080/" >> $TEST_LOCAL_CONFIG |
| echo " basedir = $(pwd)/$TEST_CRM_DATA_DIR" >> $TEST_LOCAL_CONFIG |
| echo " username = android-git@google.com" >> $TEST_LOCAL_CONFIG |
| echo " secureconfig = .crm-password" \ |
| >> $TEST_LOCAL_CONFIG |
| echo " sleep = 10" >> $TEST_LOCAL_CONFIG |
| echo " threads = 1" >> $TEST_LOCAL_CONFIG |
| |
| echo |
| echo "Finished. Now you can run:" |
| echo " gerrit gae to run the app engine server" |
| echo " gerrit crm to run the crm server" |
| echo |
| } |
| |
| |
| # pack the git repository into a new crm-data.tar.gz |
| function gerrit-pack-crm-data() |
| { |
| FULL_CRM_DATA_FILE=`pwd`/crm-data.tar.gz |
| rm -f crm-data.tar.gz |
| ( cd $TEST_CRM_DATA_DIR ; tar czf $FULL_CRM_DATA_FILE * ) |
| } |
| |
| # run the google app engine dev server |
| function gerrit-gae() |
| { |
| FULL_GERRIT_DATASTORE_DIR=`pwd`/$TEST_GERRIT_DATASTORE_DIR |
| make serve DATASTORE=$FULL_GERRIT_DATASTORE_DIR |
| } |
| |
| # run the crm server |
| function gerrit-crm() |
| { |
| if [ ! -f $TEST_CRM_PASSWORD_FILE ] ; then |
| ( curl http://localhost:8080/dev_init > $TEST_CRM_PASSWORD_FILE ) |
| ( ./mgrapp/bin/mgr $TEST_LOCAL_CONFIG sync) |
| fi |
| ( ./mgrapp/bin/mgr $TEST_LOCAL_CONFIG ) |
| } |
| |
| function gerrit-help() |
| { |
| echo "commands:" |
| echo " clean" |
| echo " reset" |
| echo " pack-crm-data" |
| echo " gae" |
| echo " crm" |
| echo " upload" |
| } |
| |
| function gerrit-upload() |
| { |
| python2.5 ../../../webapp/git_upload.py -s localhost:8080 \ |
| -e author@example.com -p test -b refs/heads/master -B HEAD^ |
| } |
| |
| # main gerrit command |
| function gerrit() |
| { |
| if [ ! -f test-utils.sh ] ; then |
| echo Run gerrit from the directory that contains test-utils.sh |
| return |
| fi |
| |
| case $1 in |
| clean) |
| gerrit-clean |
| ;; |
| reset) |
| gerrit-reset |
| ;; |
| pack-crm-data) |
| gerrit-pack-crm-data |
| ;; |
| gae) |
| gerrit-gae |
| ;; |
| crm) |
| gerrit-crm |
| ;; |
| help) |
| gerrit-help |
| ;; |
| *) |
| echo invalid gerrit command $1 |
| ;; |
| esac |
| } |
| |
| |
| # vi: sts=2 ts=2 sw=2 nocindent |