commit 8fe23b3e9bfc9a2dec0ad782a2280053022df882
parent ba71070ba9c8626acecc2827bbcad05d3db1aa3b
Author: cfillion <cfillion@users.noreply.github.com>
Date: Sun, 10 Sep 2017 21:04:06 -0400
receipt: refactor install vs update detection
Diffstat:
3 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/src/receipt.cpp b/src/receipt.cpp
@@ -35,16 +35,12 @@ bool Receipt::empty() const
m_errors.empty();
}
-void Receipt::addTicket(const InstallTicket &ticket)
+void Receipt::addInstall(const InstallTicket &ticket)
{
- switch(ticket.type) {
- case InstallTicket::Upgrade:
+ if(ticket.previous && ticket.previous.version < ticket.version->name())
m_updates.push_back(ticket);
- break;
- default:
+ else
m_installs.push_back(ticket);
- break;
- }
m_indexes.insert(ticket.version->package()->category()
->index()->shared_from_this());
diff --git a/src/receipt.hpp b/src/receipt.hpp
@@ -32,9 +32,6 @@ class Path;
typedef std::shared_ptr<const Index> IndexPtr;
struct InstallTicket {
- enum Type { Install, Upgrade };
-
- Type type;
const Version *version;
Registry::Entry previous;
};
@@ -48,7 +45,7 @@ public:
bool isRestartNeeded() const { return m_needRestart; }
void setRestartNeeded(bool newVal) { m_needRestart = newVal; }
- void addTicket(const InstallTicket &ticket);
+ void addInstall(const InstallTicket &);
const std::vector<InstallTicket> &installs() const { return m_installs; }
const std::vector<InstallTicket> &updates() const { return m_updates; }
diff --git a/src/task.cpp b/src/task.cpp
@@ -124,14 +124,7 @@ void InstallTask::commit()
tx()->registerFile({false, m_oldEntry, file});
}
- InstallTicket::Type type;
-
- if(m_oldEntry && m_oldEntry.version < m_version->name())
- type = InstallTicket::Upgrade;
- else
- type = InstallTicket::Install;
-
- tx()->receipt()->addTicket({type, m_version, m_oldEntry});
+ tx()->receipt()->addInstall({m_version, m_oldEntry});
const Registry::Entry newEntry = tx()->registry()->push(m_version);