From f0f75d5bddf515ce5d7ef22b39b3f0925c821350 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 25 Apr 2016 01:21:51 +0100 Subject: Update package urls --- .../service/maintenance/ebuildMetaProcessor.cpp | 21 ++++++++++++++++----- .../service/maintenance/ebuildMetaProcessor.h | 2 +- .../service/sql/maintenance/ebuildInsert.sql | 2 +- .../service/sql/maintenance/ebuildUpdate.sql | 2 +- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp index 87cfd12..b63bb55 100644 --- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp +++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.cpp @@ -120,9 +120,9 @@ namespace Gentoo { m->bindParamS(5, repoName); m->bindParamS(6, categoryName); m->bindParamS(7, packageName); - m->forEachRow([this,dbc,&ecp,&fn] (auto ebuildId, auto newest) { + m->forEachRow([this,dbc,&ecp,&fn] (auto ebuildId, auto newest, auto packageId) { fprintf(stderr, "Created ebuild %ld for %s (%s)\n", ebuildId, fn.c_str(), newest ? "yes" : "no"); - this->perEbuildUpdates(dbc, ecp, ebuildId); + this->perEbuildUpdates(dbc, ecp, ebuildId, newest, packageId); }); } } @@ -142,9 +142,9 @@ namespace Gentoo { m->bindParamS(4, (fn / 3).string()); // category m->bindParamS(5, matches.fetch(1)); // package m->bindParamS(6, matches.fetch(2)); // version - m->forEachRow([this,dbc,&ecp,&fn] (auto ebuildId, auto newest) { + m->forEachRow([this,dbc,&ecp,&fn] (auto ebuildId, auto newest, auto packageId) { fprintf(stderr, "Updated ebuild %ld for %s (%s)\n", ebuildId, fn.c_str(), newest ? "yes" : "no"); - this->perEbuildUpdates(dbc, ecp, ebuildId); + this->perEbuildUpdates(dbc, ecp, ebuildId, newest, packageId); }); } } @@ -172,7 +172,7 @@ namespace Gentoo { }; void - EbuildMetaProcessor::perEbuildUpdates(DB::Connection * dbc, const EbuildCacheParser & ecp, int64_t ebuildId) const + EbuildMetaProcessor::perEbuildUpdates(DB::Connection * dbc, const EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId) const { EntityWhereFilter ewf("ebuildId", ebuildId); // IUSE @@ -192,6 +192,17 @@ namespace Gentoo { t.cols = { "ebuildid", "arch" }; t.where = &ewf; dbc->patchTable(&t); + if (newest) { + // HOMEPAGE + EntityWhereFilter pwf("packageId", 1); + SplitEbuildProps sep_homepage("packageId", packageId, "url", ecp.get("HOMEPAGE")); + t.dest = "gentoobrowse.package_urls"; + t.srcExpr = &sep_homepage; + t.pk = { "packageId", "url" }; + t.cols = { "packageId", "url" }; + t.where = &pwf; + dbc->patchTable(&t); + } } void diff --git a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h index 90c0d94..42b538d 100644 --- a/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h +++ b/gentoobrowse-api/service/maintenance/ebuildMetaProcessor.h @@ -19,7 +19,7 @@ namespace Gentoo { void deleted(DB::Connection * dbc, const boost::filesystem::path & fn) const; private: - void perEbuildUpdates(DB::Connection * dbc, const EbuildCacheParser & ecp, int64_t ebuildId) const; + void perEbuildUpdates(DB::Connection * dbc, const EbuildCacheParser & ecp, int64_t ebuildId, bool newest, int64_t packageId) const; }; } } diff --git a/gentoobrowse-api/service/sql/maintenance/ebuildInsert.sql b/gentoobrowse-api/service/sql/maintenance/ebuildInsert.sql index 691efd9..2a34c36 100644 --- a/gentoobrowse-api/service/sql/maintenance/ebuildInsert.sql +++ b/gentoobrowse-api/service/sql/maintenance/ebuildInsert.sql @@ -10,4 +10,4 @@ RETURNING ebuildid, NOT EXISTS ( SELECT FROM gentoobrowse.ebuilds ve WHERE ve.packageid = gentoobrowse.ebuilds.packageid AND ve.versioninst > gentoobrowse.ebuilds.versioninst - ) + ), packageid diff --git a/gentoobrowse-api/service/sql/maintenance/ebuildUpdate.sql b/gentoobrowse-api/service/sql/maintenance/ebuildUpdate.sql index 891344c..f5a42c5 100644 --- a/gentoobrowse-api/service/sql/maintenance/ebuildUpdate.sql +++ b/gentoobrowse-api/service/sql/maintenance/ebuildUpdate.sql @@ -14,4 +14,4 @@ RETURNING ebuildid, NOT EXISTS ( SELECT FROM gentoobrowse.ebuilds ve WHERE ve.packageid = e.packageid AND ve.versioninst > e.versioninst - ) + ), e.packageid -- cgit v1.2.3