aboutsummaryrefslogtreecommitdiff
path: root/bpkg/rep-info.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-09-28 09:34:27 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-09-28 09:34:27 +0200
commitbbc1acd6e9e086c5bcfccac971c8ca4edd192765 (patch)
treecafee6b8011ee3e2d72c77e8858473bf425a5e79 /bpkg/rep-info.cxx
parent08a439c5d4e4f8c6a448f4f85b60b5fef6d7ca15 (diff)
Handle complement repositories
Diffstat (limited to 'bpkg/rep-info.cxx')
-rw-r--r--bpkg/rep-info.cxx23
1 files changed, 17 insertions, 6 deletions
diff --git a/bpkg/rep-info.cxx b/bpkg/rep-info.cxx
index 224866c..8bb3c7d 100644
--- a/bpkg/rep-info.cxx
+++ b/bpkg/rep-info.cxx
@@ -61,14 +61,25 @@ namespace bpkg
{
for (const repository_manifest& rm: rms)
{
- if (rm.location.empty ())
- continue; // Itself.
+ repository_role rr (rm.effective_role ());
- repository_location l (rm.location, rl); // Complete.
+ if (rr == repository_role::base)
+ continue; // Entry for this repository.
- //@@ Handle complements.
- //
- cout << "prerequisite " << l.canonical_name () << " " << l << endl;
+ repository_location l (rm.location, rl); // Complete.
+ const string& n (l.canonical_name ());
+
+ switch (rr)
+ {
+ case repository_role::complement:
+ cout << "complement " << n << " " << l << endl;
+ break;
+ case repository_role::prerequisite:
+ cout << "prerequisite " << n << " " << l << endl;
+ break;
+ case repository_role::base:
+ assert (false);
+ }
}
}
}