nlewo / comin

GitOps For NixOS Machines
MIT License
241 stars 11 forks source link

[Feature Request] Nix Darwin support #12

Open Pablo1107 opened 4 months ago

Pablo1107 commented 4 months ago

It would be nice if this could also export a Nix Darwin module to pull the config and switch to it.

zowoq commented 2 months ago

nix-darwin doesn't seem to have an equivalent to restartIfChanged so services are always restarted which then conflicts with comin attempting to switch to a new generation.

AFAIK cachix deploy is the only other pull type deployment tool with nix-darwin support, it seems to create a new process group for the deployment instead of doing anything like restartIfChanged = false.

zowoq commented 2 months ago

@nlewo Any thoughts on a way forward for this?

I could look at adding a restartIfChanged equivalent to nix-darwin but I can't find any requests in nix-darwin for the feature and the relevant bit of code hasn't been touched for six years so I wouldn't be surprised if the nix-darwin maintainers are reluctant to accept it.

nlewo commented 2 months ago

I actually don't have any experience with nix-darwin and i don't have nix-darwin runners. So, i'm a bit afraid by adding the support of nix-darwin, if I'm not able to maintain it. I would then prefer to minimize the comin codebase differences between linux and darwin.

I could look at adding a restartIfChanged equivalent to nix-darwin

It would be really nice to add this option in nix-darwin. Maybe you could first create an issue to see what they think about this.

I could then make comin more configuration to support more switch commands (this could also be useful to support home manager).