aboutsummaryrefslogtreecommitdiff
path: root/brep/package-version-details.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-11-12 17:25:36 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-11-16 16:41:50 +0200
commit96281a6c4f818311a6df90c0d8b8f537a61e1090 (patch)
treed0c0ccacda5ccfb94b98d018abb273b554eb2f77 /brep/package-version-details.cxx
parente80ebd1c1a6fe7749c1565c4a9e2fccaa07d5d95 (diff)
Add url, email, summary, description members to the repository class
Diffstat (limited to 'brep/package-version-details.cxx')
-rw-r--r--brep/package-version-details.cxx43
1 files changed, 25 insertions, 18 deletions
diff --git a/brep/package-version-details.cxx b/brep/package-version-details.cxx
index 9c90b8d..ce25a44 100644
--- a/brep/package-version-details.cxx
+++ b/brep/package-version-details.cxx
@@ -212,29 +212,36 @@ namespace brep
shared_ptr<package> p (d.package.load ());
string en (mime_url_encode (p->id.name));
- if (p->internal ())
- s << A << HREF << "/go/" << en << ~HREF << p->id.name << ~A;
- else
- // @@ Refer to package repository URL when supported in repository
- // manifest.
- //
- s << p->id.name;
+ assert (p->internal () || !p->other_repositories.empty ());
+ shared_ptr<repository> r (
+ p->internal ()
+ ? p->internal_repository.load ()
+ : p->other_repositories[0].load ());
- if (d.constraint)
- {
- s << ' ';
+ optional<string> u (r->url); // Repository web interface URL.
+ if (!u && p->internal ())
+ u = ""; // Make URL to reference the current web interface.
- if (p->internal ())
- s << A
- << HREF << "/go/" << en << "/" << p->version.string () << ~HREF
+ if (u)
+ {
+ s << A << HREF << *u << "/go/" << en << ~HREF << p->id.name << ~A;
+
+ if (d.constraint)
+ {
+ s << ' '
+ << A
+ << HREF
+ << *u << "/go/" << en << "/" << p->version.string ()
+ << ~HREF
<< *d.constraint
<< ~A;
- else
- // @@ Refer to package repository URL when supported in
- // repository manifest.
- //
- s << *d.constraint;
+ }
}
+ else
+ // Display the dependency as a plain text in no repository URL
+ // available.
+ //
+ s << d;
}
s << ~SPAN