aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-08-26 11:40:35 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-08-26 11:40:35 +0200
commit5b84b34eb1c4c49607a0d14706b15a6923f1ab0c (patch)
treea17fc8d975695fee597d71053ad4cb230a54be33
parent17341bc0fdd23617e3f2e81b0228ff9ecc5cb194 (diff)
Print diagnostics about empty configurations after "in configuration ...:"
In particular, this makes sure they are separated with blank lines.
-rw-r--r--bdep/build.txx31
-rw-r--r--bdep/deinit.cxx31
-rw-r--r--bdep/status.cxx36
-rw-r--r--bdep/sync.cxx31
4 files changed, 65 insertions, 64 deletions
diff --git a/bdep/build.txx b/bdep/build.txx
index 7d17088..c546559 100644
--- a/bdep/build.txx
+++ b/bdep/build.txx
@@ -94,35 +94,34 @@ namespace bdep
ps.push_back (s.name.string ().c_str ());
}
+ // If we are printing multiple configurations, separate them with a
+ // blank line and print the configuration name/directory.
+ //
+ if (verb && cfgs.size () > 1)
+ {
+ text << (first ? "" : "\n")
+ << "in configuration " << *c << ':';
+
+ first = false;
+ }
+
if (ps.empty ())
{
if (verb)
{
diag_record dr (info);
- dr << "skipping configuration " << *c;
-
if (c->packages.empty ())
- dr << info << "configuration is empty";
+ dr << "no packages ";
else
- dr << info << "none of specified packages initialized in this "
- << "configuration";
+ dr << "none of specified packages ";
+
+ dr << "initialized in configuration " << *c << ", skipping";
}
continue;
}
- // If we are printing multiple configurations, separate them with a
- // blank line and print the configuration name/directory.
- //
- if (verb && cfgs.size () > 1)
- {
- text << (first ? "" : "\n")
- << "in configuration " << *c << ':';
-
- first = false;
- }
-
// Pre-sync the configuration to avoid triggering the build system hook
// (see sync for details).
//
diff --git a/bdep/deinit.cxx b/bdep/deinit.cxx
index 00eba45..90447ad 100644
--- a/bdep/deinit.cxx
+++ b/bdep/deinit.cxx
@@ -166,35 +166,34 @@ namespace bdep
ps.push_back (s.name.string ());
}
+ // If we are printing multiple configurations, separate them with a
+ // blank line and print the configuration name/directory.
+ //
+ if (verb && cfgs.size () > 1)
+ {
+ text << (first ? "" : "\n")
+ << "in configuration " << *c << ':';
+
+ first = false;
+ }
+
if (ps.empty ())
{
if (verb)
{
diag_record dr (info);
- dr << "skipping configuration " << *c;
-
if (c->packages.empty ())
- dr << info << "configuration is empty";
+ dr << "no packages ";
else
- dr << info << "none of specified packages initialized in this "
- << "configuration";
+ dr << "none of specified packages ";
+
+ dr << "initialized in configuration " << *c << ", skipping";
}
continue;
}
- // If we are printing multiple configurations, separate them with a
- // blank line and print the configuration name/directory.
- //
- if (verb && cfgs.size () > 1)
- {
- text << (first ? "" : "\n")
- << "in configuration " << *c << ':';
-
- first = false;
- }
-
transaction t (db.begin ());
// Remove collected packages from the configuration.
diff --git a/bdep/status.cxx b/bdep/status.cxx
index fc07698..b64a9a4 100644
--- a/bdep/status.cxx
+++ b/bdep/status.cxx
@@ -96,15 +96,6 @@ namespace bdep
bool first (true);
for (const shared_ptr<configuration>& c: cfgs)
{
- if (c->packages.empty ())
- {
- if (verb)
- info << "skipping configuration " << *c <<
- info << "configuration is empty";
-
- continue;
- }
-
// Collect the packages to print, unless the dependency packages are
// specified.
//
@@ -131,16 +122,6 @@ namespace bdep
}) != ps.end ())
pkgs.push_back (s.name.string ());
}
-
- if (pkgs.empty ())
- {
- if (verb)
- info << "skipping configuration " << *c <<
- info << "none of specified packages initialized in this "
- << "configuration";
-
- continue;
- }
}
// If we are printing multiple configurations, separate them with a
@@ -154,6 +135,23 @@ namespace bdep
first = false;
}
+ if (c->packages.empty () || (pkgs.empty () && dep_pkgs.empty ()))
+ {
+ if (verb)
+ {
+ diag_record dr (info);
+
+ if (c->packages.empty ())
+ dr << "no packages ";
+ else
+ dr << "none of specified packages ";
+
+ dr << "initialized in configuration " << *c << ", skipping";
+ }
+
+ continue;
+ }
+
bool fetch (o.fetch () || o.fetch_full ());
if (fetch)
diff --git a/bdep/sync.cxx b/bdep/sync.cxx
index 3ab3ab4..e4e302b 100644
--- a/bdep/sync.cxx
+++ b/bdep/sync.cxx
@@ -1516,24 +1516,16 @@ namespace bdep
continue;
}
- // Skipping empty ones.
+ // Skipping empty ones (part one).
//
// Note that we would normally be printing that for build-time
// dependency configurations (which normally will not have any
- // initialized packages) and that would be annying. So we suppress it in
- // case of the default configuration fallback (but also check and warn
- // if all of them were empty below).
+ // initialized packages) and that would be annoying. So we suppress it
+ // in case of the default configuration fallback (but also check and
+ // warn if all of them were empty below).
//
- if (c != nullptr && c->packages.empty ())
- {
- if (verb && !default_fallback)
- info << "skipping configuration " << *c <<
- info << "configuration is empty";
-
+ if (c != nullptr && c->packages.empty () && default_fallback)
continue;
- }
-
- empty = false;
// If we are synchronizing multiple configurations, separate them with a
// blank line and print the configuration name/directory.
@@ -1542,6 +1534,19 @@ namespace bdep
text << (i == 0 ? "" : "\n")
<< "in configuration " << *c << ':';
+ // Skipping empty ones (part two).
+ //
+ if (c != nullptr && c->packages.empty ())
+ {
+ if (verb)
+ info << "no packages initialized in configuration " << *c
+ << ", skipping";
+
+ continue;
+ }
+
+ empty = false;
+
bool fetch (o.fetch () || o.fetch_full ());
if (fetch)