diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2016-03-07 19:11:31 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2016-03-09 16:22:06 +0300 |
commit | ed0dd177c63bb7758e8633ffe26de2a8bc315d1b (patch) | |
tree | 0d4c9b987ef79a96e1509bceb98e8d254bd99669 /brep | |
parent | b72424fca7a6af6ff7921101c450850fef875152 (diff) |
Display sha256sum on the package version details page
Diffstat (limited to 'brep')
-rw-r--r-- | brep/mod-package-version-details.cxx | 3 | ||||
-rw-r--r-- | brep/package | 7 | ||||
-rw-r--r-- | brep/package.cxx | 4 | ||||
-rw-r--r-- | brep/package.xml | 1 | ||||
-rw-r--r-- | brep/page | 14 | ||||
-rw-r--r-- | brep/page.cxx | 11 |
6 files changed, 37 insertions, 3 deletions
diff --git a/brep/mod-package-version-details.cxx b/brep/mod-package-version-details.cxx index cbf9c86..992b829 100644 --- a/brep/mod-package-version-details.cxx +++ b/brep/mod-package-version-details.cxx @@ -161,7 +161,7 @@ handle (request& rq, response& rs) : P_DESCRIPTION (*d, options_->package_description (), url (!full, id))); - assert (pkg->location); + assert (pkg->location && pkg->sha256sum); s << TABLE(CLASS="proplist", ID="version") << TBODY @@ -175,6 +175,7 @@ handle (request& rq, response& rs) << TR_LOCATION (pkg->internal_repository.object_id (), root) << TR_DOWNLOAD (pkg->internal_repository.load ()->location.string () + "/" + pkg->location->string ()) + << TR_SHA256SUM (*pkg->sha256sum) << ~TBODY << ~TABLE diff --git a/brep/package b/brep/package index fa129f3..67f0e31 100644 --- a/brep/package +++ b/brep/package @@ -132,7 +132,7 @@ namespace brep std::chrono::nanoseconds::period>::value, "The following timestamp ODB mapping is invalid"); - // As it pointed out in butl/timestamp we will overflow in year 2262 but + // As it pointed out in butl/timestamp we will overflow in year 2262, but // by that time some larger basic type will be available for mapping. // #pragma db map type(timestamp) as(uint64_t) \ @@ -470,6 +470,7 @@ namespace brep dependencies_type, requirements_type, optional<path> location, + optional<string> sha256sum, shared_ptr<repository_type>); // Create external package object. @@ -506,6 +507,10 @@ namespace brep // optional<path> location; + // Present only for internal packages. + // + optional<string> sha256sum; + vector<lazy_shared_ptr<repository_type>> other_repositories; // Database mapping. diff --git a/brep/package.cxx b/brep/package.cxx index 1f93a56..d1bbe21 100644 --- a/brep/package.cxx +++ b/brep/package.cxx @@ -62,6 +62,7 @@ namespace brep dependencies_type dp, requirements_type rq, optional<path> lc, + optional<string> sh, shared_ptr<repository_type> rp) : id (move (nm), vr), version (move (vr)), @@ -78,7 +79,8 @@ namespace brep dependencies (move (dp)), requirements (move (rq)), internal_repository (move (rp)), - location (move (lc)) + location (move (lc)), + sha256sum (move (sh)) { assert (internal_repository->internal); } diff --git a/brep/package.xml b/brep/package.xml index 6abbf1d..14598a5 100644 --- a/brep/package.xml +++ b/brep/package.xml @@ -87,6 +87,7 @@ <column name="package_email_comment" type="TEXT" null="true"/> <column name="internal_repository" type="TEXT" null="true"/> <column name="location" type="TEXT" null="true"/> + <column name="sha256sum" type="TEXT" null="true"/> <column name="search_index" type="tsvector" null="true"/> <primary-key> <column name="name"/> @@ -293,6 +293,20 @@ namespace brep const string& url_; }; + // Generates sha256sum element. + // + class TR_SHA256SUM + { + public: + TR_SHA256SUM (const string& s): sha256sum_ (s) {} + + void + operator() (xml::serializer&) const; + + private: + const string& sha256sum_; + }; + // Generates comment element. // class SPAN_COMMENT diff --git a/brep/page.cxx b/brep/page.cxx index 27e1b2a..689ee20 100644 --- a/brep/page.cxx +++ b/brep/page.cxx @@ -481,6 +481,17 @@ namespace brep << ~TR; } + // TR_SHA256SUM + // + void TR_SHA256SUM:: + operator() (serializer& s) const + { + s << TR(CLASS="sha256") + << TH << "sha256" << ~TH + << TD << SPAN(CLASS="value") << sha256sum_ << ~SPAN << ~TD + << ~TR; + } + // SPAN_COMMENT // void SPAN_COMMENT:: |