setup.sh revision cf22150eaeeb72431bf1cf65c309a431454fb22b
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#!/usr/bin/env bash
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# $Id$
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync## @file
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# VirtualBox Validation Kit - TestBoxScript Service Setup on Unixy platforms.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Copyright (C) 2006-2014 Oracle Corporation
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# available from http://www.virtualbox.org. This file is free software;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# you can redistribute it and/or modify it under the terms of the GNU
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# General Public License (GPL) as published by the Free Software
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# The contents of this file may alternatively be used under the terms
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# of the Common Development and Distribution License Version 1.0
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# VirtualBox OSE distribution, in which case the provisions of the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# CDDL are applicable instead of those of the GPL.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# You may elect to license modified versions of this file under the
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# terms and conditions of either the GPL or the CDDL or both.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# !WARNING! Running the whole script in exit-on-failure mode.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Note! Looking at the ash sources, it seems flags will be saved and restored
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# when calling functions. That's comforting.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncset -e
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#set -x # debug only, disable!
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Get the host OS name, returning it in RETVAL.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncget_host_os() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=`uname`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync case "$RETVAL" in
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync Darwin|darwin)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=darwin
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync DragonFly)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=dragonfly
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync freebsd|FreeBSD|FREEBSD)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=freebsd
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync Haiku)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=haiku
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync linux|Linux|GNU/Linux|LINUX)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=linux
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync netbsd|NetBSD|NETBSD)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=netbsd
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync openbsd|OpenBSD|OPENBSD)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=openbsd
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync os2|OS/2|OS2)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=os2
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync SunOS)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=solaris
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync WindowsNT|CYGWIN_NT-*)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=win
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync *)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "$0: unknown os $RETVAL" 1>&2
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync esac
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Get the host OS/CPU arch, returning it in RETVAL.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncget_host_arch() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ "${HOST_OS}" = "solaris" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=`isainfo | cut -f 1 -d ' '`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync else
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL=`uname -m`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync case "${RETVAL}" in
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync amd64|AMD64|x86_64|k8|k8l|k9|k10)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='amd64'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync x86|i86pc|ia32|i[3456789]86|BePC)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='x86'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync sparc32|sparc|sparcv8|sparcv7|sparcv8e)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='sparc32'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync sparc64|sparcv9)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='sparc64'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync s390)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='s390'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync s390x)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='s390x'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ppc32|ppc|powerpc)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='ppc32'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ppc64|powerpc64)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='ppc64'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mips32|mips)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='mips32'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync mips64)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='mips64'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ia64)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='ia64'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync hppa32|parisc32|parisc)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='hppa32'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync hppa64|parisc64)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='hppa64'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync arm|armv4l|armv5tel|armv5tejl)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='arm'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync alpha)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync RETVAL='alpha'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync *)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "$0: unknown cpu/arch - $RETVAL" 1>&$2
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync esac
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Loads config values from the current installation.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_load_config() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "os_load_config is not implemented" 2>&1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Installs, configures and starts the service.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_install_service() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "os_install_service is not implemented" 2>&1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Enables (starts) the service.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_enable_service() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "os_enable_service is not implemented" 2>&1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Disables (stops) the service.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_disable_service() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "os_disable_service is not implemented" 2>&1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Adds the testbox user
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_add_user() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "os_add_user is not implemented" 2>&1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Prints a final message after successful script execution.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# This can contain additional instructions which needs to be carried out
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# manually or similar.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_final_message() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Checks the installation, verifying that files are there and scripts work fine.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_testboxscript_install() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync # Presence
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync test -r "${TESTBOXSCRIPT_DIR}/testboxscript/testboxscript.py"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync test -r "${TESTBOXSCRIPT_DIR}/testboxscript/testboxscript_real.py"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync test -r "${TESTBOXSCRIPT_DIR}/testboxscript/linux/testboxscript-service.sh" -o "${HOST_OS}" != "linux"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync test -r "${TESTBOXSCRIPT_DIR}/${HOST_OS}/${HOST_ARCH}/TestBoxHelper"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync # Zip file may be missing the x bits, so set them.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync chmod a+x \
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync "${TESTBOXSCRIPT_DIR}/testboxscript/testboxscript.py" \
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync "${TESTBOXSCRIPT_DIR}/testboxscript/testboxscript_real.py" \
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync "${TESTBOXSCRIPT_DIR}/${HOST_OS}/${HOST_ARCH}/TestBoxHelper"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync # Check that the scripts work.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync set +e
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync "${TESTBOXSCRIPT_PYTHON}" "${TESTBOXSCRIPT_DIR}/testboxscript/testboxscript.py" --version > /dev/null
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ $? -ne 2 ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "$0: error: testboxscript.py didn't respons correctly to the --version option."
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync "${TESTBOXSCRIPT_PYTHON}" "${TESTBOXSCRIPT_DIR}/testboxscript/testboxscript_real.py" --version > /dev/null
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ $? -ne 2 ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "$0: error: testboxscript.py didn't respons correctly to the --version option."
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync set -e
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Check that sudo is installed.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_for_sudo() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync which sudo
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync test -f "${MY_ETC_SUDOERS}"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Check that sudo is installed.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_for_cifs() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Checks if the testboxscript_user exists.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncdoes_testboxscript_user_exist() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync id "${TESTBOXSCRIPT_USER}" > /dev/null 2>&1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return $?;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# hushes up the root login.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncmaybe_hush_up_root_login() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync # This is a solaris hook.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync return 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Adds the testbox user and make sure it has unrestricted sudo access.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncmaybe_add_testboxscript_user() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if ! does_testboxscript_user_exist; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync os_add_user "${TESTBOXSCRIPT_USER}"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync SUDOERS_LINE="${TESTBOXSCRIPT_USER} ALL=(ALL) NOPASSWD: ALL"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if ! ${MY_FGREP} -q "${SUDOERS_LINE}" ${MY_ETC_SUDOERS}; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "# begin tinderboxscript setup.sh" >> ${MY_ETC_SUDOERS}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "${SUDOERS_LINE}" >> ${MY_ETC_SUDOERS}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "# end tinderboxscript setup.sh" >> ${MY_ETC_SUDOERS}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync maybe_hush_up_root_login;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Test the user.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctest_user() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync su - "${TESTBOXSCRIPT_USER}" -c "true"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync # sudo 1.7.0 adds the -n option.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync MY_TMP="`sudo -V 2>&1 | head -1 | sed -e 's/^.*version 1\.[6543210]\..*$/old/'`"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ "${MY_TMP}" != "old" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "Warning: If sudo starts complaining about not having a tty,"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo " disable the requiretty option in /etc/sudoers."
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync su - "${TESTBOXSCRIPT_USER}" -c "sudo -n -i true"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync else
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "Warning: You've got an old sudo installed. If it starts"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo " complaining about not having a tty, disable the"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo " requiretty option in /etc/sudoers."
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync su - "${TESTBOXSCRIPT_USER}" -c "sudo true"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Grants the user write access to the testboxscript files so it can perform
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# upgrades.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncgrant_user_testboxscript_write_access() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync chown -R "${TESTBOXSCRIPT_USER}" "${TESTBOXSCRIPT_DIR}"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync##
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Check the proxy setup.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_proxy_config() {
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ -n "${http_proxy}" -o -n "${ftp_proxy}" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ -z "${no_proxy}" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "Error: Env.vars. http_proxy/ftp_proxy without no_proxy is going to break upgrade among other things."
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# main()
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Get our bearings and include the host specific code.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncMY_ETC_SUDOERS="/etc/sudoers"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncMY_FGREP=fgrep
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncDIR=`dirname "$0"`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncDIR=`cd "${DIR}"; /bin/pwd`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncget_host_os
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncHOST_OS=${RETVAL}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncget_host_arch
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncHOST_ARCH=${RETVAL}
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync. "${DIR}/${HOST_OS}/setup-routines.sh"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Config.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_PYTHON=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_USER=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_HWVIRT=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_IOMMU=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_NESTED_PAGING=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_SYSTEM_UUID=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_PATH_TESTRSRC=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TEST_MANAGER=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_SCRATCH_ROOT=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_BUILDS_PATH=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_BUILDS_TYPE="cifs"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_BUILDS_NAME="solserv.de.oracle.com"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_BUILDS_SHARE="builds"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_BUILDS_USER="guestr"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_BUILDS_PASSWD="guestr"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TESTRSRC_PATH=""
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TESTRSRC_TYPE="cifs"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TESTRSRC_NAME="solserv.de.oracle.com"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TESTRSRC_SHARE="testrsrc"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TESTRSRC_USER="guestr"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_TESTRSRC_PASSWD="guestr"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncdeclare -a TESTBOXSCRIPT_ENVVARS
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Load old config values (platform specific).
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_load_config
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Set defaults.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncif [ -z "${TESTBOXSCRIPT_USER}" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync TESTBOXSCRIPT_USER=vbox;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfi;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncTESTBOXSCRIPT_DIR=`dirname "${DIR}"`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Parse arguments.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncwhile test $# -gt 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncdo
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync case "$1" in
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync -h|--help)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "TestBox Script setup utility."
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "Usage: setup.sh [options]";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo "Options:";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo " Later...";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync -V|--version)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo '$Revision$'
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 0;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --python) TESTBOXSCRIPT_PYTHON="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --test-manager) TESTBOXSCRIPT_TEST_MANAGER="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --scratch-root) TESTBOXSCRIPT_SCRATCH_ROOT="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --system-uuid) TESTBOXSCRIPT_SYSTEM_UUID="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --hwvirt) TESTBOXSCRIPT_HWVIRT="yes";;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --no-hwvirt) TESTBOXSCRIPT_HWVIRT="no";;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --nested-paging) TESTBOXSCRIPT_NESTED_PAGING="yes";;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --no-nested-paging) TESTBOXSCRIPT_NESTED_PAGING="no";;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --io-mmu) TESTBOXSCRIPT_IOMMU="yes";;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --no-io-mmu) TESTBOXSCRIPT_IOMMU="no";;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --builds-path) TESTBOXSCRIPT_BUILDS_PATH="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --builds-server-type) TESTBOXSCRIPT_BUILDS_TYPE="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --builds-server-name) TESTBOXSCRIPT_BUILDS_NAME="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --builds-server-share) TESTBOXSCRIPT_BUILDS_SHARE="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --builds-server-user) TESTBOXSCRIPT_BUILDS_USER="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --builds-server-passwd) TESTBOXSCRIPT_BUILDS_PASSWD="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --testrsrc-path) TESTBOXSCRIPT_TESTRSRC_PATH="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --testrsrc-server-type) TESTBOXSCRIPT_TESTRSRC_TYPE="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --testrsrc-server-name) TESTBOXSCRIPT_TESTRSRC_NAME="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --testrsrc-server-share) TESTBOXSCRIPT_TESTRSRC_SHARE="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --testrsrc-server-user) TESTBOXSCRIPT_TESTRSRC_USER="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync --testrsrc-server-passwd) TESTBOXSCRIPT_TESTRSRC_PASSWD="$2"; shift;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync *)
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync echo 'Syntax error: Unknown option:' "$1" >&2;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync exit 1;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync ;;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync esac
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync shift;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncdone
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Find usable python if not already specified.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncif [ -z "${TESTBOXSCRIPT_PYTHON}" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync set +e
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync MY_PYTHON_VER_TEST="\
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncimport sys;\
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncx = sys.version_info[0] == 2 and (sys.version_info[1] >= 6 or (sys.version_info[1] == 5 and sys.version_info[2] >= 1));\
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncsys.exit(not x);\
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync for python in python2.7 python2.6 python2.5 python;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync do
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync python=`which ${python} 2> /dev/null`
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if [ -n "${python}" -a -x "${python}" ]; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync if ${python} -c "${MY_PYTHON_VER_TEST}"; then
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync TESTBOXSCRIPT_PYTHON="${python}";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync break;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync fi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync done
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync set -e
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync test -n "${TESTBOXSCRIPT_PYTHON}";
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncfi
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# Do the job
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncset -e
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_testboxscript_install;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_for_sudo;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_for_cifs;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynccheck_proxy_config;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncmaybe_add_testboxscript_user;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsynctest_user;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncgrant_user_testboxscript_write_access;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_disable_service;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_install_service;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_enable_service;
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync# That's all folks.
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsync#
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncecho "done"
cf22150eaeeb72431bf1cf65c309a431454fb22bvboxsyncos_final_message;