Merge pull request #6136 from matthewbauer/profile-upgrade-verbosity

Add verbosity to nix profile upgrade
This commit is contained in:
Eelco Dolstra 2022-02-21 22:30:47 +01:00 committed by GitHub
commit caf5172945
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -410,12 +410,16 @@ struct CmdProfileUpgrade : virtual SourceExprCommand, MixDefaultProfile, MixProf
// FIXME: code duplication // FIXME: code duplication
std::vector<DerivedPath> pathsToBuild; std::vector<DerivedPath> pathsToBuild;
auto upgradedCount = 0;
for (size_t i = 0; i < manifest.elements.size(); ++i) { for (size_t i = 0; i < manifest.elements.size(); ++i) {
auto & element(manifest.elements[i]); auto & element(manifest.elements[i]);
if (element.source if (element.source
&& !element.source->originalRef.input.isImmutable() && !element.source->originalRef.input.isImmutable()
&& matches(*store, element, i, matchers)) && matches(*store, element, i, matchers))
{ {
upgradedCount++;
Activity act(*logger, lvlChatty, actUnknown, Activity act(*logger, lvlChatty, actUnknown,
fmt("checking '%s' for updates", element.source->attrPath)); fmt("checking '%s' for updates", element.source->attrPath));
@ -448,6 +452,19 @@ struct CmdProfileUpgrade : virtual SourceExprCommand, MixDefaultProfile, MixProf
} }
} }
if (upgradedCount == 0) {
for (auto & matcher : matchers) {
if (const size_t* index = std::get_if<size_t>(&matcher)){
warn("'%d' is not a valid index in profile", *index);
} else if (const Path* path = std::get_if<Path>(&matcher)){
warn("'%s' does not match any paths in profile", *path);
} else if (const RegexPattern* regex = std::get_if<RegexPattern>(&matcher)){
warn("'%s' does not match any packages in profile", regex->pattern);
}
}
warn ("Use 'nix profile list' to see the current profile.");
}
store->buildPaths(pathsToBuild); store->buildPaths(pathsToBuild);
updateProfile(manifest.build(store)); updateProfile(manifest.build(store));