#!/bin/sh

. /etc/control.d/functions

CONFIG=/etc/udev/rules.d/90-virtualbox.rules
DEVICE=/dev/vboxdrv

new_fmode public 666 root root
new_fmode vboxusers 660 root vboxusers
new_fmode restricted 600 root root

new_subst public \
	'^KERNEL=="vboxdrv",[[:space:]]*MODE="0666",[[:space:]]*GROUP="[^"]*"[[:space:]]*$' \
	's/^KERNEL=="vboxdrv",[[:space:]]*MODE="[^"]*",[[:space:]]*GROUP="[^"]*"[[:space:]]*$/KERNEL=="vboxdrv", MODE="0666", GROUP="root"/g'
new_subst vboxusers \
	'^KERNEL=="vboxdrv",[[:space:]]*MODE="0660",[[:space:]]*GROUP="vboxusers"[[:space:]]*$' \
	's/^KERNEL=="vboxdrv",[[:space:]]*MODE="[^"]*",[[:space:]]*GROUP="[^"]*"[[:space:]]*$/KERNEL=="vboxdrv", MODE="0660", GROUP="vboxusers"/g'
new_subst restricted \
	'^KERNEL=="vboxdrv",[[:space:]]*MODE="0600",[[:space:]]*GROUP="[^"]*"[[:space:]]*$' \
	's/^KERNEL=="vboxdrv",[[:space:]]*MODE="[^"]*",[[:space:]]*GROUP="[^"]*"[[:space:]]*$/KERNEL=="vboxdrv", MODE="0600", GROUP="root"/g'

new_summary "VirtualBox support (vboxdrv)"
new_help public "Any user can use VirtualBox"
new_help vboxusers "Only \"vboxusers\" group members can use VirtualBox"
new_help restricted "Only root can use VirtualBox"

control_subst "$CONFIG" "$*" || exit 1

is_builtin_mode "$*" || {
	# Fix device permissions if udev is not used for some reason
	if [ -c "$DEVICE" ]; then
		control_fmode "$DEVICE" "$*" || exit 1
	fi
}
