1bcb7f8 bumped rust-apt from 0.5 to 0.7. This change made
Cache::packages(&self, &sort) a fallible function. The required change in
the Debian backend was missed.
This commit propagates the error in get_all_installed_packages and
get_explicitly_installed_packages for the Debian backend.
Fixes#64.
Now able to support packages installed via pipx with the exception of
packages that do not provide a binary themselves. Install those
explicitly via `pipx install --include-deps <package>`.
Signed-off-by: innocentzero <isfarulhaque@proton.me>
Removed inlined switches to a separate function for both explicit
installs and all installs and added a match statement to parse the
outputs accordingly.
Signed-off-by: innocentzero <isfarulhaque@proton.me>
While it is now able to iterate through JSON created by pipx, it is
unable to read the JSON with the error `EOF while parsing a value
at line 1 column 0`
Signed-off-by: innocentzero <isfarulhaque@proton.me>
The first attempt 02c44c92d0 caused
`Section.partial_cmp` and `Section.cmp` to call each other recursively.
That lead to a stack overflow when compiled without optimizations, and
an infinite loop when optimizations were enabled.
This commit now properly implements at first `Ord` for both `Section`
and `Group`, and from this derives `PartialEq` for each.
When no packages have been installed yet using cargo-install, the rust
backend has errored out until now when trying to load the file. If the
file does not exist, we assume it is empty and that no packages have
been installed for cargo.
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.