Absolute path literal so Home Manager does not fail when the Nix option
`lint-absolute-path-literals` is set to `fatal`.
The purpose of `makePath` was to avoid multiple slashes in the printed
path. This is unnecessary as can be seen by the discover entry which
does not do this "beautification".
Drop the dirty_path.nix test as it is no longer relevant.
Update the tests to the new output, which now contains a trailing slash.
This is fine as the khards path attribute expects an directory.
Add new option `accounts.contact.accounts.<name>.khard.addressbooks`.
Remove the previous soln,
`accounts.contact.accounts.<name>.khard.defaultCollection`, which is
superseded with the new option.
Add a new test to check the new `addressbooks` option. Modify an
existing test which was checking the removed `defaultCollection`.
Previous commit a38f88 allowed a hardcoded path to be set for khard if
the path set for its local storage is not the actual `vdir`. This was
accomplished via adding the `defaultCollection` option. However this
accepted only a single sub-directory, and when one has more than a
single collection on the same dir this would require repetition on
configuration to set [1].
This is a continuation of the soln given to
nix-community/home-manager#4531, refer to there and the previous PR [2]
for reference.
[1]: https://github.com/nix-community/home-manager/issues/4531#issuecomment-2701156246
[2]: https://github.com/nix-community/home-manager/pull/5220
Add an extra option,
accounts.contact.accounts.<name>.khard.defaultCollection
to hardcode a subdirectory for khard to function as intended. Khard
expects to be given a collection directory directly, from which there
can be multiple of in a vdir. This contrasts khal or vdirsyncer which
support recursive search.
Fixes#4531