Hacker News new | past | comments | ask | show | jobs | submit login
Fundle: A minimalist package manager for fish shell (github.com/tuvistavie)
15 points by tuvistavie on Nov 4, 2015 | hide | past | favorite | 7 comments



Why do people keep writing domain-specific package managers?


I would say that it is because it integrates much better in the workflow. If I am writing my fish shell configuration, I would rather manage my packages using a simple fish shell script rather than making the setup more complex with something too general.


Agreed. From my research, [peru](https://github.com/buildinspace/peru) works very well as a unified, extensible application's package manager, plugin manager, extension manager, addon manager, theme manager, etc.


Correct me if I am wrong, but for fish, I think that would do half of the work: fetching the packages. You still need to update `fish_function_path` and `fish_complete_path`, then source the relevant files from the packages. If you forget about the `install` command of fundle, you can just use peru or whatever tool you like to fetch the packages and let fundle initialize everything.


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:

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.


Thanks for the links!

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.


And build systems, for that matter.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: