2017-10-04 17 views
0

J'essaie d'utiliser des marionnettes, mais mon expérience est si faible. J'ai besoin de votre aide;)Marionnette | Solution pour l'édition XML

Je veux fichier XML d'édition (paramètres LibreOffice)

... 
<item oor:path="/org.openoffice.Office.Paths/Paths/org.openoffice.Office.Paths:NamedPath['Template']"><prop oor:name="UserPaths" oor:op="fuse"><value></value></prop></item> 
... 

i besoin d'ajouter 1,2 chemins utilisateur (à l'intérieur). Final XML devrait être comme ça

... 
<item oor:path="/org.openoffice.Office.Paths/Paths/org.openoffice.Office.Paths:NamedPath['Template']"><prop oor:name="UserPaths" oor:op="fuse"><value><it>file:///path/to/dir1/</it><it>file:///path/to/dir2/</it></value></prop></item> 
... 

Comment puis-je faire avec la marionnette?

Répondre

0

Vous pouvez utiliser la fonction stdlib file_line pour remplacer la ligne en question.

la fonction peut remplacer une ligne dans votre fichier xml par une nouvelle ligne avec les données que vous voulez.

Exemple:

file_line { 'Change file xml file line': 
ensure => present, 
path => '/xml/file/path', 
line => '<item oor:path="/org.openoffice.Office.Paths/Paths/org.openoffice.Office.Paths:NamedPath['Template']"><prop oor:name="UserPaths" oor:op="fuse"><value><it>file:///path/to/dir1/</it><it>file:///path/to/dir2/</it></value></prop></item>', 
match => '<item oor:path=', 
} 

S'il vous plaît vérifier plus d'informations sur la fonction file_line

https://github.com/puppetlabs/puppetlabs-stdlib