Existe alguma maneira de dizer ao recurso augean Puppet qual codificação usar?

1

Eu sou novo no augeas, e estou recebendo muitos erros como:

Could not evaluate: invalid byte sequence in UTF-8

em especial, espero que o augeas honre a declaração de codificação em um arquivo XML

<?xml version="1.0" encoding="ISO-8859-1"?>

mas no código fonte da lente eu não consigo ver que isso é levado em conta, mas eu poderia estar errado sentido eu não entendo muito do formato de lentes: link

ou que o Java-Properties-File sempre é tratado como ISO-8859-1 e, novamente, nenhum rastreio de qualquer codificação no código-fonte da lente: link

minha primeira pergunta é: o augeas infere a codificação correta para XML e propriedades-Files?

minha segunda pergunta é: Existe alguma maneira de dizer ao augeas qual codificação usar?

para repoduzir

assumindo que a codificação padrão dos sistemas seja UTF-8:

vi testUTF.properties

# Käse
abc=test
# tèté
persona=niño

E está tudo bem:

puppet-test:~ # augtool --noautoload
augtool> set /augeas/load/Properties/lens Properties.lns
augtool> set /augeas/load/Properties/incl "/root/testUTF.properties"
augtool> load
augtool> print /augeas/files/root/testUTF.properties
/augeas/files/root/testUTF.properties
/augeas/files/root/testUTF.properties/path = "/files/root/testUTF.properties"
/augeas/files/root/testUTF.properties/mtime = "1491478421"
/augeas/files/root/testUTF.properties/lens = "Properties.lns"
/augeas/files/root/testUTF.properties/lens/info = "/usr/share/augeas/lenses/dist/properties.aug:25.20-.53:"
augtool> print /files/root/testUTF.properties
/files/root/testUTF.properties
/files/root/testUTF.properties/#comment[1] = "K34se"
/files/root/testUTF.properties/abc = "test"
/files/root/testUTF.properties/#comment[2] = "t30t31"
/files/root/testUTF.properties/persona = "ni31o"

Agora convertendo o arquivo em iso-8859-1:

iconv --from-code UTF-8 --to-code ISO-8859-1 -o testIso.properties testUTF.properties

e

puppet-test:~ # augtool --noautoload
augtool> set /augeas/load/Properties/lens Properties.lns
augtool> set /augeas/load/Properties/incl "/root/testIso.properties"
augtool> load
augtool> print /augeas/files/root/testIso.properties
/augeas/files/root/testIso.properties
/augeas/files/root/testIso.properties/path = "/files/root/testIso.properties"
/augeas/files/root/testIso.properties/mtime = "1491478512"
/augeas/files/root/testIso.properties/lens = "Properties.lns"
/augeas/files/root/testIso.properties/lens/info = "/usr/share/augeas/lenses/dist/properties.aug:25.20-.53:"
augtool> print /files/root/testIso.properties
/files/root/testIso.properties
/files/root/testIso.properties/#comment[1] = "K4se"
/files/root/testIso.properties/abc = "test"
/files/root/testIso.properties/#comment[2] = "t0t1"
/files/root/testIso.properties/persona = "ni1o"

e agora tudo ainda está bem, arghhh, não deve ser ...

Então, com certeza NÃO é um problema de augeas, mas um problema de marionetes

Refomulando minha pergunta:

Existe alguma maneira de dizer ao recurso Augeas Puppet qual codificação usar?

Muito obrigado antecipadamente

    
por mmoossen 04.04.2017 / 13:47

0 respostas