NAME
IvmConfigProperties.xml - device properties to be monitored by ivman(8)
DESCRIPTION
IvmConfigProperties.xml specifies hardware properties to be monitored
by ivman(8), and allows running of certain commands when device
properties change.
IvmConfigProperties.xml is parsed as an XML file. The general form of
the file is:
<?xml version="1.0" encoding="UTF-8"?>
<ivm:PropertiesConfig version="0.1"
xmlns:ivm="http://www.eikke.com/ivm">
<ivm:Match name="matchname" value="matchvalue">
<ivm:Property name="propertyname">
<ivm:Action value="propertyvalue1" exec="command1" />
<ivm:Action value="propertyvalue2" exec="command2" />
...
</ivm:Property>
</ivm:Match>
...
</ivm:PropertiesConfig>
Each time a property changes on a device, this file will be parsed. If
the Match rule matches the device on which the property changed, and
the Property rule matches the name of the property which changed, then
all of the Action rules within that Property tag wil be parsed. If
’value’ is equal to the new value of the changed property, then the
command specified in ’exec’ will be executed.
A Match element can have any of the following names:
ivm.mountable
Whether or not HAL specifies that a device can and should
be mounted. Must be "true" or "false".
hal.anything
The string in place of "anything" will be taken as the name
of a HAL property string for the device, and the value of
the property will be compared to the value given. Run
’lshal’ to see a list of HAL properties which can be used
here.
* Match every device. Use with care!
As many Matches can be nested as is desired.
A Property element can have the following name:
hal.anything
The string in place of "anything" will be taken as the name
of a HAL property string for the device, and if this is the
property that has changed, enclosed rules will be
processed.
An Action element can have any string as its ’value’. If the new value
of the changed property is equal to this string, then the command given
as the ’exec’ property will be executed. It can also have the special
value ’*’; in this case, the ’exec’ command will be executed every time
the property changes.
exec supports substitution of HAL device properties. This is
accomplished by surrounding the property name with $ symbols. For
instance, if $hal.volume.mount_point$ is within a command, it will be
replaced with the volume’s mount point before execution. No character
escaping is done in the substitution, but the characters ’ and " are
replaced with ?, so you can surround the substitution with quotes
without fear.
There is also a single Option which can be set in this file, and should
be set outside of any Match or Property blocks. The syntax of this
option is:
<ivm:Option name="checkOnInit" value="true" />
If the value of checkOnInit is true, then Ivman will check every device
on the system for matching rules when started. For example, if a rule
was present which started a service only when a particular volume was
mounted, and Ivman was started when the volume was already mounted, it
would start the service if and only if checkOnInit was set to true.
Remember that this is an XML file, which means that characters which
have a special meaning in XML (entities) need to be escaped. Some
characters which are popular in shell scripting (&, <, >) are among
these special characters. As a quick reference, & becomes & , <
becomes < , > becomes > , ’ becomes ' and " becomes " .
SEE ALSO
ivman(8), IvmConfigBase.xml(5), IvmConfigActions.xml(5),
IvmConfigConditions.xml(5)
12 May 2005