????
Current Path : /usr/libexec/scripts/ |
Current File : //usr/libexec/scripts/hal-luks-teardown |
#!/bin/bash # Copyright (C) 2005 W. Michael Petullo <mike@flyn.org> # Copyright (C) 2006 David Zeuthen <davidz@redhat.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2. . hal-functions locked_out() { echo "org.freedesktop.Hal.Device.InterfaceLocked" >&2 echo "Enclosing drive/volume is locked" >&2 exit 1 } unknown_error() { echo "org.freedesktop.Hal.Device.UnknownError" >&2 echo "Missing or empty environment variable(s)." >&2 echo "This script should be started by hald." >&2 exit 1 } # Check for environment variables if [ -z "$HAL_PROP_BLOCK_DEVICE" ] || [ -z "$HAL_PROP_INFO_UDI" ] || [ -z "$HAL_PROP_VOLUME_UUID" ] ; then unknown_error fi # Respect the same locks as Mount()/Unmount() etc. if [ -n "$HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME" ] ; then hal-is-caller-locked-out --udi $HAL_PROP_INFO_UDI \ --interface org.freedesktop.Hal.Device.Volume \ --caller "$HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME" RET=$? if [ "$RET" != "0" ] ; then locked_out fi hal-is-caller-locked-out --udi $HAL_PROP_BLOCK_STORAGE_DEVICE \ --interface org.freedesktop.Hal.Device.Storage \ --caller "$HAL_METHOD_INVOKED_BY_SYSTEMBUS_CONNECTION_NAME" RET=$? if [ "$RET" != "0" ] ; then locked_out fi fi # TODO: this is a little sketchy; we should check for hal-storage-crypto-teardown-others? # IS_HOTPLUGGABLE=`hal-get-property --udi $HAL_PROP_BLOCK_STORAGE_DEVICE --key storage.hotpluggable` if [ "$IS_HOTPLUGGABLE" == "true" ] ; then ACTION="org.freedesktop.hal.storage.crypto-setup-removable" elif [ "$IS_HOTPLUGGABLE" == "false" ] ; then ACTION="org.freedesktop.hal.storage.crypto-setup-fixed" else unknown_error fi hal_check_priv $ACTION hal_exec_backend