aboutsummaryrefslogtreecommitdiff
path: root/emulators/virtualbox-ose-legacy/files
diff options
context:
space:
mode:
authorBernhard Froehlich <decke@FreeBSD.org>2011-05-22 09:15:09 +0000
committerBernhard Froehlich <decke@FreeBSD.org>2011-05-22 09:15:09 +0000
commit6fe0379a7b14f3d5f4b7b0b9d75a438ba3771048 (patch)
tree443ec063151631124bf6709070f089b50214843b /emulators/virtualbox-ose-legacy/files
parent5a8e3290525d9e23513f2f678658a1c389ebafa5 (diff)
downloadports-6fe0379a7b14f3d5f4b7b0b9d75a438ba3771048.tar.gz
ports-6fe0379a7b14f3d5f4b7b0b9d75a438ba3771048.zip
Notes
Diffstat (limited to 'emulators/virtualbox-ose-legacy/files')
-rw-r--r--emulators/virtualbox-ose-legacy/files/vboxheadless.in125
-rw-r--r--emulators/virtualbox-ose-legacy/files/vboxwebsrv.in49
2 files changed, 174 insertions, 0 deletions
diff --git a/emulators/virtualbox-ose-legacy/files/vboxheadless.in b/emulators/virtualbox-ose-legacy/files/vboxheadless.in
new file mode 100644
index 000000000000..f0a04a6b1aa1
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/vboxheadless.in
@@ -0,0 +1,125 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: vboxheadless
+# REQUIRE: LOGIN vboxnet
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable vboxheadless
+#
+# vboxheadless_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable vboxheadless.
+# vboxheadless_machines (str): Space separated list of machines
+# vboxheadless_user (str): Default user account to run with.
+# (default: %%VBOXUSER%%)
+# vboxheadless_<machine>_name (str): Virtualbox machine name or UUID.
+# vboxheadless_<machine>_user (str): User account to run with.
+# vboxheadless_<machine>_flags (str): Additional flags for VBoxHeadless.
+
+. /etc/rc.subr
+
+name="vboxheadless"
+rcvar=`set_rcvar`
+
+command="%%PREFIX%%/bin/VBoxHeadless"
+pidbase="/var/run/${name}"
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+status_cmd="${name}_status"
+
+vboxheadless_start()
+{
+ local machine mpidfile pid vmname vmuser vmflags
+
+ echo "Starting Virtual Machines:"
+ for machine in ${vboxheadless_machines}; do
+ mpidfile="${pidbase}_${machine}.pid"
+ pid=$(check_pidfile $mpidfile $command)
+ eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
+ eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
+ eval vmflags="\${vboxheadless_${machine}_flags:-}"
+
+ HOME=$(/usr/sbin/pw usershow -7 -n "${vmuser}" | /usr/bin/cut -d: -f6)
+
+ /usr/bin/printf "%25s " "${vmname}"
+
+ /usr/bin/su ${vmuser} -c "%%PREFIX%%/bin/VBoxManage showvminfo '${vmname}' >/dev/null" 2>/dev/null
+
+ if [ $? != 0 ]; then
+ echo "Unknown machine"
+ continue
+ fi
+
+ if [ -n "${pid}" ]; then
+ echo "Already running? (pid=${pid})"
+ continue
+ fi
+
+ /usr/bin/install -o ${vmuser} -g wheel -m 644 /dev/null ${mpidfile}
+ /usr/sbin/daemon -f -p ${mpidfile} -u ${vmuser} ${command} --startvm "${vmname}" ${vmflags}
+ echo "Started"
+ done
+}
+
+vboxheadless_stop()
+{
+ local machine mpidfile pid vmname vmuser
+
+ echo "Saving states for Virtual Machines:"
+ for machine in ${vboxheadless_machines}; do
+ mpidfile="${pidbase}_${machine}.pid"
+ pid=$(check_pidfile $mpidfile $command)
+ eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
+ eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
+
+ /usr/bin/printf "%25s " "${vmname}"
+
+ if [ -n "${pid}" ]; then
+ /usr/bin/su ${vmuser} -c "%%PREFIX%%/bin/VBoxManage controlvm '${vmname}' savestate >/dev/null" 2>/dev/null
+ wait_for_pids $pid >/dev/null
+ echo "Stopped"
+ else
+ echo "Not running?"
+ fi
+ done
+}
+
+vboxheadless_status()
+{
+ local machine mpidfile pid vmname vmuser
+
+ /usr/bin/printf "%25s %s\n" "Machine" "Status"
+ /usr/bin/printf "%25s %s\n" "-------------------------" "------------"
+
+ for machine in ${vboxheadless_machines}; do
+ mpidfile="${pidbase}_${machine}.pid"
+ pid=$(check_pidfile $mpidfile $command)
+ eval vmname="\${vboxheadless_${machine}_name:-${machine}}"
+ eval vmuser="\${vboxheadless_${machine}_user:-${vboxheadless_user}}"
+
+ /usr/bin/su ${vmuser} -c "/usr/local/bin/VBoxManage showvminfo '${vmname}' >/dev/null" 2>/dev/null
+
+ if [ $? != 0 ]; then
+ /usr/bin/printf "%20s %s\n" "${vmname}" "Unknown Machine"
+ elif [ -n "${pid}" ]; then
+ /usr/bin/printf "%25s %s\n" "${vmname}" "Running"
+ else
+ /usr/bin/printf "%25s %s\n" "${vmname}" "Powered Off"
+ fi
+ done
+}
+
+load_rc_config $name
+
+: ${vboxheadless_enable="NO"}
+: ${vboxheadless_user="%%VBOXUSER%%"}
+
+cmd_arg="$1" ; shift
+
+if [ -n "$*" ]; then
+ vboxheadless_machines="$*"
+fi
+
+run_rc_command "${cmd_arg}"
diff --git a/emulators/virtualbox-ose-legacy/files/vboxwebsrv.in b/emulators/virtualbox-ose-legacy/files/vboxwebsrv.in
new file mode 100644
index 000000000000..2905effbb3a8
--- /dev/null
+++ b/emulators/virtualbox-ose-legacy/files/vboxwebsrv.in
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: vboxwebsrv
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following line to /etc/rc.conf[.local] to enable vboxwebsrv
+#
+# vboxwebsrv_enable (bool): Set to "NO" by default.
+# Set it to "YES" to enable vboxwebsrv.
+# vboxwebsrv_user (str): User account to run with.
+# vboxwebsrv_flags (str): Custom flags for vboxwebsrv.
+
+. /etc/rc.subr
+
+name=vboxwebsrv
+rcvar=`set_rcvar`
+
+command="%%PREFIX%%/bin/vboxwebsrv"
+pidfile="/var/run/${name}.pid"
+
+start_cmd="${name}_start"
+
+vboxwebsrv_start()
+{
+ local pid
+
+ HOME=$(/usr/sbin/pw usershow -7 -n "${vboxwebsrv_user}" | /usr/bin/cut -d: -f6)
+ pid=$(check_pidfile $pidfile $command)
+
+ if [ -n "${pid}" ]; then
+ echo "${name} already running? (pid=${pid})."
+ return 1
+ fi
+
+ echo -n "Starting ${name}"
+ /usr/bin/install -o ${vboxwebsrv_user} -g wheel -m 644 /dev/null ${pidfile}
+ /usr/sbin/daemon -f -p ${pidfile} -u ${vboxwebsrv_user} ${command} ${vboxwebsrv_flags}
+ echo '.'
+}
+
+load_rc_config $name
+
+: ${vboxwebsrv_enable="NO"}
+: ${vboxwebsrv_user="%%VBOXWSUSER%%"}
+
+run_rc_command "$1"