/plug

Primary LanguagePython

Plug

PLUG - PlacehoLder Un- and Generator; for in-place metaprogramming or easy payload embedding

A complementary tool for traditional preprocessors to avoid adding a redundant step of translation to every update.

Why?

Multiple reasons actually:

In place metaprogramming

Think preprocessors. Only the most well adapted preprocessors have the privilage to have inplace operation support, as the standard C preprocessor does. However if one wishes to do something more hacky, perhaps with the m4 preprocessor, one would end up with mysource.extension.m4. Which would be annoying to edit for multiple reasons:

  • getting the right highlighting is most likely painful to setup
  • a new intermediate file (mysource.extension) is introduced, which could be edited by accident
  • in case of large files, the reason/extend of using m4 becomes obfuscated by the dominating original format

Embedding

Say you wish to make a shell script self-contained, but it relies on an external file. It sounds self-contradictory, however it could come up when, say one of the tools involved need large amounts of binary data.

Imagine an installer for example that must unpack a tar.

Before you wonder whether I have made this twisted hack up, I can prove the contrary:

https://www.xmodulo.com/embed-binary-file-bash-script.html

In practice

TODO

  • fill in "in practice"
  • @all is broken, it ruins everything and not internally defined as a builtin