Exactly. So with peru, those post-fetch steps, in this case specific to fish, could run as separate ~"features". (I put that in quotes with a tilde, because I had trouble figuring out exactly how that works.) Here are a couple links to see what I mean about adding additional functionality outside existing plugins or as a new plugin:
What I meant was not a post-fetch (which if I understand, runs only once) step but rather an init script that would load the scripts at each shell startup, what pathogen would do for vim, for example.
I looked a little at peru docs and the links you gave me, and that is pretty much the point I gave in my other comment:
> I would rather manage my packages using a simple fish shell script rather than making the setup more complex with something too general.
I know there are plenty of powerful tools that can manage pretty much anything, I do use Ansible locally to setup my machine and could easily have it download my fish packages as well.
However, when it comes to a particular software, especially when loading the downloaded resources is neither automatic nor obvious (e.g. vim, emacs, fish), I find a simple and specialized tool in the target much more pleasant to use, which was my motivation for this one.
https://github.com/buildinspace/peru/blob/master/docs/archit...
https://github.com/buildinspace/peru/tree/master/docs/make_e...
Edit: As a possible concrete example, `extract_tar` runs in `curl_plugin.py` based on `PERU_MODULE_UNPACK` setting in a yaml config.