Repository navigation
Replies: 1 comment 2 replies
|
Thanks for the heads up. Personally I think it's more streamlined to keep it as is because the interface to everything is mostly a single shell script + shell based config files. Everything is set up and provisioned the same. It would be more complicated to maintain for both users and myself if only a few things were managed by mise, this is compounded by also needing to keep up with mise's features around this. Your call outs are valid around what looks to be limited by mise (theming, skipping, etc.). I think the mise bootstrap config will be harder to manage if you want to change it because it would need to be git ignored so each machine can have its own set of packages and other configs, but at the same time you'd probably want a lot of things pre-defined. I've used Ansible for around 12 years, it's a general purpose machine provisioning tool. I almost made DFR with it, but decided against it because it tends to be slow (even over localhost), but it's also a completely separate tool that needs to be learned by the user and also kept compatible with various versions. That's how I landed on shell scripts in the end. It's not perfect but it's fast and general purpose with a pretty clean API for doing the things DFR does. Do you find anything limited with the current implementation? I have thought about adding hooks at various stages but always talked myself out of it because I haven't had a real use case for it yet. |
Uh oh!
There was an error while loading. Please reload this page.
Since DotFriedRice already leans on mise for tool installs, I figured this might be worth a look: mise recently grew two features that overlap with parts of what the dotfriedrice script does.
mise bootstrapis a declarative machine setup step (system packages per manager, repos, systemd units / launchd agents, files with owner+mode, macOS defaults, shell activation), and[dotfiles]handles symlinking/copying/templating config files withsymlink,symlink-each,copyandtemplatemodes, plusstatus/apply--dry-run.Very high level, the parts of this repo that map onto it:
_install/default/config_install— theln -fnslists could become:_install/default/packages/{arch,darwin,debian}—DEFAULT_PACKAGES_PACMAN,DEFAULT_PACKAGES_BREW,DEFAULT_PACKAGES_BREW_CASKetc. have a direct equivalent:DEFAULT_SYSTEMD_ENABLED_SERVICESand the sudoers/udev entries look like[bootstrap.linux.systemd.units]/[bootstrap.services]and[bootstrap.files."/etc/..."]withowner/mode. Andmise bootstrap dotfiles status --missingis a CI-friendly check for drift.Things I'm genuinely unsure about, and why I'm asking rather than suggesting:
dfr-theme-setre-pointing symlinks at runtime) is dynamic, whereas dotfiles apply is a converge-to-desired-state operation, so that probably stays as-is either way._SKIP/_EXTRASoverride pattern and the "warn before overwriting an unmanaged real file" behaviour are nicer than what I've seen from the mise side so far.Not arguing for a rewrite — mostly curious whether you think any slice of this is worth adopting (even just the
[dotfiles]part, or the status check in CI), or whether the bash approach stays the better fit here. Happy to leave it at that if it's not interesting.All reactions