Назад | Перейти на главную страницу

augeas: вставить директиву после комментария в httpd.conf

Я пытаюсь вставить директиву ServerName после соответствующего комментария в httpd.conf:

#ServerName www.example.com:80

Это не удается:

defvar sncomment /files/etc/httpd/conf/httpd.conf/#comment[.= 'ServerName  www.example.com:80']
ins directive after $sncomment
defvar snentry /files/etc/httpd/conf/httpd.conf/directive[preceding-sibling::*[1][$sncomment]]
set $snentry 'ServerName'
set $snentry/arg 'www.domain:80'

$ sncomment соответствует правильной строке, а пустая директива вставляется в правильную точку в дереве, но $ snentry соответствует каждой директиве в дереве, а не только вставленной. Как я могу сопоставить только вставленную директиву?

Спасибо

Есть более простой способ сопоставить только что вставленную директиву:

defvar snentry /files/etc/httpd/conf/httpd.conf/directive[. = '']

Это будет работать, пока в дереве нет других пустых директив. Тем не менее, я все же хотел бы исправить синтаксис предыдущего брата, если кто-то может обнаружить ошибку в моем коде.