So far we have warned the user when we first visited the group dir and
there were no group files. This lead to spurious warnings, e.g. when the
user wanted to import or create a group. We now defer the check to when
we actually need some content in the groups, and the program should not
perform the respective action without any groups present. This causes
some code duplication, but enhances UE.
Closes#31.
So far we have written a default config file if we encountered any error
when trying to read the one that should exist. That included:
* missing key-value-pairs,
* empty file, and
* a non-existant file.
Therefore, when a field is added to the Config struct, the entire config
file was overwritten with a default config. This occured during #20.
Instead, we now provide default values in form of generator functions to
serde. Any value that is present in the config is then parsed and
replaces the default value. Only if the config file does not exist we
create an empty one.
Closes#26.
Instead of expecting all files to be located immediately under the group
dir, we allow them to be nested in additional folders. We walk the group
folder, and treat every file as a group file. The relative path of the
file as seen from the group dir becomes the group name.
Fixes#27.
This commit updates the `ask_user_action_for_package` function in the
`review` module to convert user input to lowercase. This ensures that
the user input is case-insensitive and improves the user experience.