Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce service wrapper permitting less stateful configuration #104

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

charles-dyfis-net
Copy link

Config files for the previous wrapper could not be shared across machines, and could not be generated independent of or prior to creation of local system state, as they needed to be aware of filesystem UUIDs.

This wrapper permits more flexible configuration (including support for passing all parameters on the wrapper's command line, and not needing any on-disk files at all) while retaining support for the legacy configuration file format.

This attempts to address #80. The proposed wrapper is almost exactly identical to the one currently in use by NixOS (which is subject to some basic automated testing as part of that project).

This PR is admittedly written in a deeply opinionated style; arguments supporting that style are available via the freenode #bash IRC channel, and documentation (BashFAQ, BashGuide) maintained by members thereof, more specific references available on request.

Config files for the previous wrapper could not be shared across machines, and
could not be generated independent of or prior to creation of local system
state, as they needed to be aware of filesystem UUIDs.

This wrapper permits more flexible configuration (including support for passing
all parameters on the wrapper's command line, and not needing any on-disk files
at all) while retaining support for the legacy configuration file format.
@kakra
Copy link
Contributor

kakra commented Jan 4, 2019

If it keeps backward compatibility, I like this. :-)

@charles-dyfis-net
Copy link
Author

charles-dyfis-net commented Jan 4, 2019

Theoretically it does, but it's only comprehensively tested on NixOS. I've done some smoketests with contrived examples of historical config files, but it'd be good to get feedback and review from someone with the real thing on hand.

@Zygo
Copy link
Owner

Zygo commented Jan 4, 2019

No objections at first glance. I'll have a deeper look later.

@kakra
Copy link
Contributor

kakra commented Jan 4, 2019

I'd vote for testing the backwards compatibility and if it works fine, start announcing deprecation of the old format during the next release cycle. We can then just drop support for the old format at some point (but still detect it and refuse to continue).

@Zygo I'll pick that into my integration branch and will work with it a while, we can then craft a PR from it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants