4 ms·
Another comment already mentioned Khard, which has been around a while. [0] There's also Mates [1]. Less mature, very simple, but it's what I personally use.
by wfleming 5y ago
Another comment already mentioned Khard, which has been around a while. [0]
There's also Mates [1]. Less mature, very simple, but it's what I personally use.
I try to steer away from relying on CLI tools implemented in python or ruby: at the system level they always seem to cause dependency hell problems eventually. Mates is implemented in Rust, so it's compiled, which is primarily why I chose it.
An important related project is vdirsyncer [2]. Ppl, khard, and mates all store data in vcard format but don't talk to APIs or sync anything. Vdirsyncer can sync your vcard collection with your email provider or what have you.
[0] https://github.com/scheibler/khard https://github.com/scheibler/khard
[1] https://github.com/pimutils/mates.rs https://github.com/pimutils/mates.rs
[2] https://github.com/pimutils/vdirsyncer https://github.com/pimutils/vdirsyncer
- vorpalhex 5y ago> I try to steer away from relying on CLI tools implemented in python or ruby: at the system level they always seem to cause dependency hell problems eventually. For python specifically, you can use `pipx` which will install an app into it's own venv and activate that venv only as needed, with fully isolated deps. [1] No such solution exists for ruby or php though, and I won't use those projects unless dockerized. [1] - https://pypi.org/project/pipx/ https://pypi.org/project/pipx/
- wfleming 5y agoI'm aware of that approach for Python, and Bundler can be configured to do a similar thing for Ruby. Those are good approaches for development environments (though I generally prefer Docker for those these days), but for system tools I think that's just kind of a hassle and I don't want to do it. For a tool I install & use, my happy path is "install it with my package manager, and then stop thinking about it". Upgrades will happen whenever I decide to ask my package manager to upgrade everything. (I use Arch Linux, so that's usually once or twice a week.) Needing to hand-setup an installation or deal with multiple package managers like that for a program makes me cranky. I've certainly done it when there wasn't a good alternative (and also occasionally wrap programs in docker containers as well if it's easier - https://github.com/wfleming/dockerfiles https://github.com/wfleming/dockerfiles), but it's the kind of thing that makes me pause and reconsider whether I really care enough to use whatever the program is.