IVMCONFIGACTIONS.XML

НАЗВАНИЕ
ОПИСАНИЕ
ПРИМЕРЫ
СМОТРИ ТАКЖЕ
АВТОР ПЕРЕВОДА

НАЗВАНИЕ

IvmConfigActions.xml − действия, производимые ivman(8)

ОПИСАНИЕ

IvmConfigActions.xml указывает, какие действия должен произвести ivman(8) при вставке/подключении устройства к системе, где действиями могут быть монтирование устройства или выполнение программы.

IvmConfigActions.xml обрабатывается как файл XML. Общий вид этого файла следующий:

<?xml version="1.0" encoding="UTF−8"?>
<ivm:ActionsConfig version="0.2" xmlns:ivm="http://www.eikke.com/ivm">

<ivm:Match name="matchname" value="matchvalue">
<ivm:Option name="optionname1" value="optionvalue1" />
<ivm:Option name="optionname2" value="optionvalue2" />
...
</ivm:Match>

...

</ivm:ActionsConfig>

При каждом добавлении устройства в систему обрабатывается этот файл. Если в элементе Match для нового устройства выполняется условие matchname=matchvalue, то обрабатываются элементы Match или Option внутри данного элемента Match.

Элемент Match может иметь одно из следующих имён:

ivm.mountable

Указывает может ли и должно ли быть смонтировано данное устройство HAL. Должно принимать значение "true" (истина) или "false" (ложь).

hal.anything

Строка на месте "anything" будет использована в качестве имени строки свойства устройства HAL, а значение этого свойства может быть сравнено с указанной строкой. Запустите ’lshal’, чтобы увидеть список свойств HAL, которые можно здесь использовать.

*

Совпадает с любым устройством. Соблюдайте осторожность!

Элемент Option может иметь любое из следующих имён:

checkOnInit

Если задано ’true’, IvmConfigActions.xml будет обрабатываться при запуске Ivman и правила будут применены ко всем устройствам, подключенным к системе в настоящее время. Это можно использовать, например, для монтирования любых съёмных устройств, подключенных к системе до запуска Ivman. Эта опция должна быть указана вне какой−либо конструкции элемента ’match’.

mount

Указывает монтировать ли устройство или нет. Должно принимать значение "true" (истина) или "false" (ложь). Если к устройству применяется больше одного значения, то используется то из них, которое ближе к концу файла.

exec

Команда, которая будет выполнена при вставке устройства или диска. Количество команд для устройства не ограничено.

execun

Команда, выполняемая при изъятии устройства или диска. Количество команд для устройства не ограничено. Отметим, что для execun подстановки свойств HAL ограничены; поскольку устройство более не существует при выполнении команды, мы не можем получить из HAL информацию о нём, и поэтому любые подстановки будут произведены со значениями свойств, которые были получены при вставке (или монтировании, если Ivman смонтировал их), а НЕ при удалении.

execdvd

Команда, выполняемая при вставке устройства, если том содержит видео в формате DVD. Общее количество команд для устроства не ограничено. ЗАМЕЧАНИЕ: execdvd устарела! Теперь существует свойство HAL, которое указывает на то, содержит или нет диск видео в формате DVD − volume.disc.is_videodvd.

exec, execdvd и execun поддерживает подстановку свойств устройства HAL. Это делается помещением имени свойства между символами $. Например, если в команде указано $hal.volume.mount_point$, то оно будет заменено на точку монтирования до выполнения команды. При подстановке не выполняется экранирования символов, но символы ’ и " заменяются на ?, поэтому вы без опаски можете заключить подстановку в кавычки.

Помните, что это файл XML, поэтому символы, имеющие особое значение в XML должны быть заэкранированы. Некоторые символы, популярные при использовании в оболочке (&, <, >) являются этими специальными символами. В качестве краткой инструкции: & заменяется на &amp; , < заменяется на &lt; , > заменяется на &gt; , ’ заменяется на &apos; а " заменяется на &quot; .

Элементы Match и Options могут быть вложены настолько глубоко, насколько может потребоваться. Это, наряду с возможностью проверять свойства HAL, делает Ivman весьма гибким; см. примеры ниже.

ПРИМЕРЫ

<!−− автовоспроизведение видео с дисков DVD −−>
<ivm:Match name="hal.volume.disc.type" value="dvd_rom">
<ivm:Option name="execdvd" value="xine −f −g −D dvd:$hal.block.device$" />
</ivm:Match>

<!−− автовоспроизведение музыкальных дисков CD −−>
<ivm:Match name="hal.volume.disc.type" value="cd_rom">
<ivm:Match name="hal.volume.disc.has_audio" value="true">
<ivm:Match name="hal.volume.disc.has_data" value="false">
<ivm:Option name="exec" value="cdplay −d $hal.block.device$ −c" />
</ivm:Match>
</ivm:Match>
</ivm:Match>

<!−− отмена монтирования некоторых разделов, которые мы не хотим монтировать −−>
<ivm:Match name="hal.block.device" value="/dev/hda5">
<ivm:Option name="mount" value="false" />
</ivm:Match>
<ivm:Match name="hal.block.device" value="/dev/hda2">
<ivm:Option name="mount" value="false" />
</ivm:Match>

Дополнительные примеры вы можете найти в файле, по умолчанию поставляемом в комплекте с Ivman.

СМОТРИ ТАКЖЕ

ivman(8), IvmConfigBase.xml(5), IvmConfigProperties.xml(5), IvmConfigConditions.xml(5)

АВТОР ПЕРЕВОДА

Перевод на русский язык выполнил Владимир Ступин <vladimir@stupin.su>.