Home | History | Annotate | Download | only in admin
      1 #!/bin/bash
      2 #
      3 # Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 USAGE="Usage: deploy_private_test.sh -a PATH_TO_PUBLIC_AUTOTEST \
      7 -p PATH_TO_PRIVATE_AUTOTEST"
      8 HELP="${USAGE}
      9     Link server side tests under PATH_TO_PRIVATE_AUTOTEST \
     10 to PATH_TO_PUBLIC_AUTOTEST
     11 
     12     PATH_TO_PRIVATE_AUTOTEST defaults to \
     13 /usr/local/autotest/site_utils/autotest_private
     14     PATH_TO_PUBLIC_AUTOTEST defaults to \
     15 /usr/local/autotest"
     16 
     17 AUTOTEST_ROOT="/usr/local/autotest"
     18 PRIVATE_AUTOTEST_ROOT="${AUTOTEST_ROOT}/site_utils/autotest_private"
     19 
     20 while getopts ":p:a:h" opt; do
     21   case $opt in
     22     a)
     23       AUTOTEST_ROOT=$OPTARG
     24       ;;
     25     p)
     26       PRIVATE_AUTOTEST_ROOT=$OPTARG
     27       ;;
     28     h)
     29       echo "${HELP}" >&2
     30       exit 0
     31       ;;
     32     \?)
     33       echo "Invalid option: -$OPTARG" >&2
     34       echo "${USAGE}" >&2
     35       exit 1
     36       ;;
     37   esac
     38 done
     39 
     40 if [ ! -d "${AUTOTEST_ROOT}" ]; then
     41   echo "Invalid public autotest root: ${AUTOTEST_ROOT}" >&2
     42   exit 1
     43 fi
     44 
     45 if [ ! -d "${PRIVATE_AUTOTEST_ROOT}" ]; then
     46   echo "Invalid private autotest root: ${PRIVATE_AUTOTEST_ROOT}" >&2
     47   exit 1
     48 fi
     49 
     50 PUBLIC_SERVER_TESTS_DIR="${AUTOTEST_ROOT}/server/site_tests"
     51 PUBLIC_SERVER_SUITES_DIR="${PUBLIC_SERVER_TESTS_DIR}/suites"
     52 PUBLIC_CLIENT_TESTS_DIR="${AUTOTEST_ROOT}/client/site_tests"
     53 
     54 PRIVATE_SERVER_TESTS_DIR="${PRIVATE_AUTOTEST_ROOT}/server/site_tests"
     55 PRIVATE_SERVER_SUITES_DIR="${PRIVATE_SERVER_TESTS_DIR}/suites"
     56 PRIVATE_CLIENT_TESTS_DIR="${PRIVATE_AUTOTEST_ROOT}/client/site_tests"
     57 
     58 echo "Removing existing symbolic links in ${PUBLIC_SERVER_TESTS_DIR}, \
     59 ${PUBLIC_CLIENT_TESTS_DIR} and ${PUBLIC_SERVER_SUITES_DIR}"
     60 find ${PUBLIC_SERVER_TESTS_DIR} -type l -exec rm -v {} \;
     61 find ${PUBLIC_CLIENT_TESTS_DIR} -type l -exec rm -v {} \;
     62 find ${PUBLIC_SERVER_SUITES_DIR} -type l -exec rm -v {} \;
     63 echo "Creating links for tests..."
     64 find ${PRIVATE_SERVER_TESTS_DIR} -mindepth 1 -maxdepth 1 \
     65      -type d ! -path ${PRIVATE_SERVER_SUITES_DIR} \
     66      -exec ln -v -s {} ${PUBLIC_SERVER_TESTS_DIR} \;
     67 find ${PRIVATE_CLIENT_TESTS_DIR} -mindepth 1 -maxdepth 1 \
     68      -type d ! -path ${PRIVATE_SERVER_SUITES_DIR} \
     69      -exec ln -v -s {} ${PUBLIC_CLIENT_TESTS_DIR} \;
     70 echo "Creating links for suites..."
     71 find ${PRIVATE_SERVER_SUITES_DIR} -mindepth 1 -maxdepth 1 -type f \
     72      -exec ln -v -s {} ${PUBLIC_SERVER_SUITES_DIR} \;
     73