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 соответствует каждой директиве в дереве, а не только вставленной. Как я могу сопоставить только вставленную директиву?
Спасибо
1 ответ
Есть более простой способ соответствовать только что вставленной директиве:
defvar snentry /files/etc/httpd/conf/httpd.conf/directive[. = '']
Это будет работать до тех пор, пока в дереве нет других пустых директив. Тем не менее, я все еще хотел бы получить правильный синтаксис предшествующего брата, если кто-нибудь сможет обнаружить ошибку в моем коде.