#!/bin/bash
#
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
USAGE="Usage: deploy_private_test.sh -a PATH_TO_PUBLIC_AUTOTEST \
-p PATH_TO_PRIVATE_AUTOTEST"
HELP="${USAGE}
    Link server side tests under PATH_TO_PRIVATE_AUTOTEST \
to PATH_TO_PUBLIC_AUTOTEST

    PATH_TO_PRIVATE_AUTOTEST defaults to \
/usr/local/autotest/site_utils/autotest_private
    PATH_TO_PUBLIC_AUTOTEST defaults to \
/usr/local/autotest"

AUTOTEST_ROOT="/usr/local/autotest"
PRIVATE_AUTOTEST_ROOT="${AUTOTEST_ROOT}/site_utils/autotest_private"

while getopts ":p:a:h" opt; do
  case $opt in
    a)
      AUTOTEST_ROOT=$OPTARG
      ;;
    p)
      PRIVATE_AUTOTEST_ROOT=$OPTARG
      ;;
    h)
      echo "${HELP}" >&2
      exit 0
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      echo "${USAGE}" >&2
      exit 1
      ;;
  esac
done

if [ ! -d "${AUTOTEST_ROOT}" ]; then
  echo "Invalid public autotest root: ${AUTOTEST_ROOT}" >&2
  exit 1
fi

if [ ! -d "${PRIVATE_AUTOTEST_ROOT}" ]; then
  echo "Invalid private autotest root: ${PRIVATE_AUTOTEST_ROOT}" >&2
  exit 1
fi

PUBLIC_SERVER_TESTS_DIR="${AUTOTEST_ROOT}/server/site_tests"
PUBLIC_SERVER_SUITES_DIR="${PUBLIC_SERVER_TESTS_DIR}/suites"

PRIVATE_SERVER_TESTS_DIR="${PRIVATE_AUTOTEST_ROOT}/server/site_tests"
PRIVATE_SERVER_SUITES_DIR="${PRIVATE_SERVER_TESTS_DIR}/suites"


echo "Removing existing symbolic links in ${PUBLIC_SERVER_TESTS_DIR} \
and ${PUBLIC_SERVER_SUITES_DIR}"
find ${PUBLIC_SERVER_TESTS_DIR} -type l -exec rm -v {} \;
echo "Creating links for tests..."
find ${PRIVATE_SERVER_TESTS_DIR} -mindepth 1 -maxdepth 1 \
     -type d ! -path ${PRIVATE_SERVER_SUITES_DIR} \
     -exec ln -v -s {} ${PUBLIC_SERVER_TESTS_DIR} \;
echo "Creating links for suites..."
find ${PRIVATE_SERVER_SUITES_DIR} -mindepth 1 -maxdepth 1 -type f \
     -exec ln -v -s {} ${PUBLIC_SERVER_SUITES_DIR} \;
