Anexa texto em um arquivo enquanto aberto em um editor

0

Aqui está o cenário: Um usuário cria um novo arquivo X.php , digamos, usando o nano. O usuário grava algum conteúdo, salva o arquivo (Estágio S1), mas não sai do nano. Ele novamente faz algumas alterações e depois sai do nano depois de salvar o arquivo novamente (Stage S2).

Pergunta: Eu tenho um pedaço de código (um gatilho) que eu preciso injetar em cada arquivo php em um diretório. Eu sou capaz de fazer isso. Mas no cenário superior, assim que eu detecto um novo arquivo (usando inotifywait) é criado (Estágio S1), injetar meu código nele. No entanto, como o nano nunca foi fechado, assim, no próximo save (Estágio S2), meu código injetado é sobrescrito pelas novas mudanças do usuário. Como posso me livrar desse problema?

P.S .: O editor pode ser qualquer editor de texto e eu não conheço o editor usado pelo usuário para criar arquivo.

    
por Arch 10.05.2014 / 22:20

2 respostas

0

Você precisa modificar seu processo de injeção de código para agir sempre que um arquivo PHP é modificado ou criado e torná-lo inteligente o suficiente para verificar se seu código está lá e insira-o se não estiver. Caso contrário, você estará vulnerável ao seguinte cenário:

  1. O usuário cria X.php , salva-o e sai do editor.
  2. Seu processo insere seu código.
  3. O usuário edita o arquivo, vê seu código, diz "WTF?" e o exclui (e salva o arquivo).
por 10.05.2014 / 22:50
0

Sinto muito, mas os editores armazenam o processo de edição de maneiras diferentes. A menos que você gere seu próprio editor com a arquitetura desejada em mente e force todos a usarem esse editor em particular, você ficará muito desapontado e passará por muitas complexidades com o problema que ainda persiste.

Wrappers nos editores também não ajudarão nesse problema. Contanto que um arquivo seja aberto logicamente (modo buffer), você estará fadado ao fracasso.

    
por 10.05.2014 / 22:27