IPXESOURCE is pointing to /usr/share/ipxe/ by default, so the `ipxe/`
directory should not be included in the compiled-in relative defaults.
Fixes a bug in #1010
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
Also refactor New and Get to return pointers to match BaseConf methods.
This makes calling the methods immediately on the return values of the
constructors easier.
Also move config.ConfigFile to buildconfig.go.in. ConfigFile is still
used by wwctl as a default config file to reference; but it is removed
from other locations now.
Removed Persist, as nothing called it.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
Comments in the code were already disparaging of config.DataStore(), but
implied that its presence made other code more readable. It was only
used in two places and, imo, how I've refactored it is more explicit and
clear than it was.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
Initialized could be interpreted to mean dynamically initialized as
well. This new name removes that ambiguity.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
Since BaseConf.New could return a cached BaseConf, rather than always
constructing a new struct, I've renamed it to Get to more accurately
reflect its use. A new New() method is called by Get and always
initializes a new struct.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
Also moved BaseConfig to a new source file, co-located with its
constructors and methods, and added doc comments.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>