VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/testboxscript/linux/setup-routines.sh@ 66784

Last change on this file since 66784 was 66784, checked in by vboxsync, 8 years ago

testboxscript: work around array problem with old bash versions

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1#!/bin/sh
2# $Id: setup-routines.sh 66784 2017-05-04 11:26:24Z vboxsync $
3## @file
4# VirtualBox Validation Kit - TestBoxScript Service Setup.
5#
6
7#
8# Copyright (C) 2006-2015 Oracle Corporation
9#
10# This file is part of VirtualBox Open Source Edition (OSE), as
11# available from http://www.virtualbox.org. This file is free software;
12# you can redistribute it and/or modify it under the terms of the GNU
13# General Public License (GPL) as published by the Free Software
14# Foundation, in version 2 as it comes in the "COPYING" file of the
15# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17#
18# The contents of this file may alternatively be used under the terms
19# of the Common Development and Distribution License Version 1.0
20# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
21# VirtualBox OSE distribution, in which case the provisions of the
22# CDDL are applicable instead of those of the GPL.
23#
24# You may elect to license modified versions of this file under the
25# terms and conditions of either the GPL or the CDDL or both.
26#
27
28
29# Load the routines we share with the linux installer.
30if test ! -r "${DIR}/linux/setup-installer-routines.sh" -a -r "${DIR}/../../Installer/linux/routines.sh"; then
31 . "${DIR}/../../Installer/linux/routines.sh"
32else
33 . "${DIR}/linux/setup-installer-routines.sh"
34fi
35
36
37os_load_config() {
38 if [ -d /etc/conf.d/ ]; then
39 MY_CONFIG_FILE="/etc/conf.d/testboxscript"
40 elif [ -d /etc/default/ ]; then
41 MY_CONFIG_FILE="/etc/default/testboxscript"
42 else
43 echo "Port me!"
44 exit 1;
45 fi
46 if [ -r "${MY_CONFIG_FILE}" ]; then
47 . "${MY_CONFIG_FILE}"
48 fi
49}
50
51os_install_service() {
52 #
53 # Install the runlevel script.
54 #
55 install_init_script "${TESTBOXSCRIPT_DIR}/testboxscript/linux/testboxscript-service.sh" "testboxscript-service"
56 set +e
57 delrunlevel "testboxscript-service" > /dev/null 2>&1
58 addrunlevel "testboxscript-service" 90 10
59 set -e
60
61 #
62 # Work around a bug with arrays in old bash versions.
63 #
64 if [ ${#TESTBOXSCRIPT_ENVVARS[@]} -eq 0 ]; then
65 unset TESTBOXSCRIPT_ENVVARS
66 fi
67
68 #
69 # Install the configuration file.
70 #
71 echo "# Generated by $0." > "${MY_CONFIG_FILE}"
72 set | sed -n -e '/^TESTBOXSCRIPT_/p' >> "${MY_CONFIG_FILE}"
73 return 0;
74}
75
76os_enable_service() {
77 stop_init_script testboxscript-service
78 return 0;
79}
80
81os_disable_service() {
82 stop_init_script testboxscript-service 2>&1 || true # Ignore
83 return 0;
84}
85
86os_add_user() {
87 ADD_GROUPS=""
88 if ! grep -q wheel /etc/group; then
89 ADD_GROUPS="-G wheel"
90 fi
91 set -e
92 useradd -m -U -p password -s /bin/bash ${ADD_GROUPS} "${TESTBOXSCRIPT_USER}"
93 set +e
94 return 0;
95}
96
97check_for_cifs() {
98 test -x /sbin/mount.cifs -o -x /usr/sbin/mount.cifs
99 grep -wq cifs /proc/filesystems || modprobe cifs;
100 # Note! If modprobe doesn't work above, /sbin and /usr/sbin are probably missing from the search PATH.
101 return 0;
102}
103
104##
105# Test if core dumps are enabled. See https://wiki.ubuntu.com/Apport!
106#
107test_coredumps() {
108 if test "`lsb_release -is`" = "Ubuntu"; then
109 if grep -q "apport" /proc/sys/kernel/core_pattern; then
110 if grep -q "#.*problem_types" /etc/apport/crashdb.conf; then
111 echo "It looks like core dumps are properly configured, good!"
112 else
113 echo "Warning: Core dumps will be not always generated!"
114 fi
115 else
116 echo "Warning: Apport not installed! This package is required for core dump handling!"
117 fi
118 fi
119}
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette