ema / pets

A configuration management system for Pets, not Cattle
MIT License
460 stars 9 forks source link

comparison to alternatives #1

Closed jackmac92 closed 1 year ago

jackmac92 commented 1 year ago

chezmoi comes to mind

ema commented 1 year ago

Hello and thanks for your interest in pets!

Would you like to see a description of pets in comparison to chezmoi in the README? If so, please note that the "Design overview" section does touch upon the differences between pets and other configuration management systems (puppet/chef/ansible).

Please feel free to suggest whatever changes you have in mind in a PR.

scottdotau commented 1 year ago

Hello and thanks for your interest in pets!

Would you like to see a description of pets in comparison to chezmoi in the README? If so, please note that the "Design overview" section does touch upon the differences between pets and other configuration management systems (puppet/chef/ansible).

Please feel free to suggest whatever changes you have in mind in a PR.

I see this as complementing chezmoi rather than be an alternative.

For example, chezmoi templates could be used to generate per-hostname/distro/etc configuration in for example $XDG_CONFIG_HOME/pets/*... Chezmois on change hooks can then be used to re-apply the config when the contents change.

jackmac92 commented 1 year ago

Gotcha thanks!

I've found some ways to manage the "full configuration of the system" via chezmoi scripts, but they get pretty clunky/hacky. I think pets would be better suited to those!

scottdotau commented 1 year ago

Hey @jackmac92 i know you've closed this,

But because I was already working on something similar I can show an example of how pets can be used with chezmoi as a driver (as it's more robus in being able to template, etc)

I've just created a new repo and copied it over from my personal dotfiles from my phone so excuse any mistakes (I'll fix up on my computer when I'm home if you want), but hopefully it's small enough that you can read through and understand what it's doing so you can expand on it ☺

Basically pets files all in dot_pets, and because pets can recurse directories (relies on file header not location), can filter out (thanks to chezmoiignore) different features/systems.

Everything in base folder (and remaining directories after ignores are excluded) will be run.

Hope this helps, https://github.com/scottdotau/chezmoi-pets