Mecanismo de template on-the-fly Textfile

2

Existe um mecanismo de modelo de texto dinâmico / on-the-fly que funciona no nível do sistema de arquivos, por exemplo? via fusível, de uma forma semelhante aos motores de templates html web-server?

Imagine que você tem, por exemplo um arquivo de configuração /etc/hostapd/hostapd.conf AP assim

# On-the-fly AP configuration for any interface
interface={{dev}}
ssid="AwesomeNetwork-{{dev}}"
...

Agora eu montei a pasta /etc/hostapd/ (ou até mesmo um único arquivo) com meu cool (fuse) fs para /etc/hostapd-dyn :

mount -t template-fuse /etc/hostapd /etc/hostapd-dyn

E o arquivo /etc/hostapd-dyn/hostapd.conf/dev=wlp0s2 agora conteria

# On-the-fly AP configuration for any interface
interface=wlp0s2
ssid="AwesomeNetwork-wlp0s2"
...

Esse tipo de fs permitiria ter arquivos de configuração dinâmicos nos quais você talvez nem saiba de antemão alguns de seus valores, mas não tem a possibilidade de criar o arquivo dinamicamente pipetando-o por meio de um pré-processador / awk / sed / ...

Por exemplo ao definir serviços dinâmicos [email protected] systemd , você poderia usar a variável dinâmica para modificar realmente o conteúdo de arquivo de um arquivo de configuração usado em uma instrução ExecStart= . (Bem, você poderia sempre preceder outro comando ExecStart= que cria o arquivo de configuração e depois usar o arquivo de configuração recém-criado na próxima linha. Mas isso não seria tão elegante e infalível em algumas situações.)

    
por sebastian 07.01.2016 / 15:33

1 resposta

1

Existe um projeto de haskell chamado "dotfs" que faz algo parecido com o que você está descrevendo. Isso pode ser extinto, no entanto.

Seria fácil juntar algo em python usando o fusepy. Eu anexei uma essência (baseada na base do fusepy) que faz quase o que você está pedindo, simplesmente executando o conteúdo de cada arquivo através de um bash echo, e expandindo tudo de acordo. Desta forma, você também pode ter entrada dinâmica de outros programas, via $ ().

gleachkr / fusething.py

Se você quiser ajustá-lo, pode mexer nas funções de reescrita na parte superior para fazer uma expansão mais específica (ou mais segura, que pode ser uma boa ideia).

    
por 26.04.2016 / 20:51