this post was submitted on 18 Jul 2023
49 points (100.0% liked)

Experienced Devs

3959 readers
1 users here now

A community for discussion amongst professional software developers.

Posts should be relevant to those well into their careers.

For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:

founded 1 year ago
MODERATORS
 

I'm wondering if there is a new tool out there that I'm missing out on.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 12 points 1 year ago (4 children)

https://www.chezmoi.io/ if you've got some complexity with your setup. otherwise, could be overkill.

[–] [email protected] 3 points 1 year ago

What I really like about chezmoi is how it can retrieve secrets stored on Bitwarden. Your git history is clean of secrets but you can have them referenced on your dotfiles.

[–] [email protected] 3 points 1 year ago

Had a homebrew Git setup for ages and recently started using Chezmoi. It's only been a few weeks, but so far it's been pretty great!

[–] [email protected] 2 points 1 year ago (1 children)
[–] [email protected] 2 points 1 year ago (1 children)

it's so useful! I used to have some terrible setup going with branches for different OSes in my dotfiles, and chezmoi really simplified the whole thing

[–] [email protected] 1 points 1 year ago

Indeed, I use my dotfiles across several machines, architectures, and distributions and it's fantastic

[–] [email protected] 2 points 1 year ago

I use Chezmoi but I have to point out some of its downfalls vs. other dotfile managers, particularly if someone is looking to migrate to it.

  • Go's templating lib is incredibly unergonomic.
  • Identifying file perms and visibility in by special naming convention is pretty gross. Also makes it more difficult to migrate to another solution.
  • If you're deleting files, you need to remember to do it through chezmoi remove .... You can't just rm them from your dotfiles directory, because chezmoi does not sync state; it simply applies what's currently in your repo.
  • Handling multiple systems through .chezmoiignore ends up being overly verbose and unintuitive vs. the approach used by other dotfile managers

Despite these gripes I still use it because deployment via a single binary is convenient, and there's enough control through the generated config file + system info to handle multiple kinds of deployments sort-of-sensibly (see point 4 above).