rbutil: Code cleanup.

- Fix naming.
- Remove non-functional functionality to set cache folder.
- Use URL filename part when copying the file if target filename is not set.

Change-Id: Ic9af59300f06d4309c6a4c9542d4f6079dd841c3
This commit is contained in:
Dominik Riebeling 2020-09-26 17:51:33 +02:00
parent 9d8bcbeb2a
commit f1f72ff8df
2 changed files with 31 additions and 25 deletions

View file

@ -22,11 +22,10 @@
#include "ziputil.h"
#include "Logger.h"
ZipInstaller::ZipInstaller(QObject* parent): QObject(parent)
ZipInstaller::ZipInstaller(QObject* parent) :
QObject(parent),
m_unzip(true), m_usecache(false), m_getter(0)
{
m_unzip = true;
m_usecache = false;
m_getter = 0;
}
@ -34,11 +33,11 @@ void ZipInstaller::install()
{
LOG_INFO() << "initializing installation";
runner = 0;
m_runner = 0;
connect(this, SIGNAL(cont()), this, SLOT(installContinue()));
m_url = m_urllist.at(runner);
m_logsection = m_loglist.at(runner);
m_logver = m_verlist.at(runner);
m_url = m_urllist.at(m_runner);
m_logsection = m_loglist.at(m_runner);
m_logver = m_verlist.at(m_runner);
installStart();
}
@ -54,13 +53,13 @@ void ZipInstaller::installContinue()
{
LOG_INFO() << "continuing installation";
runner++; // this gets called when a install finished, so increase first.
LOG_INFO() << "runner done:" << runner << "/" << m_urllist.size();
if(runner < m_urllist.size()) {
m_runner++; // this gets called when a install finished, so increase first.
LOG_INFO() << "runner done:" << m_runner << "/" << m_urllist.size();
if(m_runner < m_urllist.size()) {
emit logItem(tr("done."), LOGOK);
m_url = m_urllist.at(runner);
m_logsection = m_loglist.at(runner);
if(runner < m_verlist.size()) m_logver = m_verlist.at(runner);
m_url = m_urllist.at(m_runner);
m_logsection = m_loglist.at(m_runner);
if(m_runner < m_verlist.size()) m_logver = m_verlist.at(m_runner);
else m_logver = "";
installStart();
}
@ -69,7 +68,6 @@ void ZipInstaller::installContinue()
emit done(false);
return;
}
}
@ -158,18 +156,22 @@ void ZipInstaller::downloadDone(bool error)
zip.close();
}
else {
if (m_target.isEmpty())
m_target = QUrl(m_url).fileName();
QString destfile = m_mountpoint + "/" + m_target;
// only copy the downloaded file to the output location / name
emit logItem(tr("Installing file."), LOGINFO);
LOG_INFO() << "saving downloaded file (no extraction)";
LOG_INFO() << "saving downloaded file (no extraction) to" << destfile;
m_downloadFile->open(); // copy fails if file is not opened (filename issue?)
// make sure the required path is existing
QString path = QFileInfo(m_mountpoint + m_target).absolutePath();
QString path = QFileInfo(destfile).absolutePath();
QDir p;
p.mkpath(path);
// QFile::copy() doesn't overwrite files, so remove old one first
QFile(m_mountpoint + m_target).remove();
if(!m_downloadFile->copy(m_mountpoint + m_target)) {
// TODO: compare old and new file and fail if those are different.
QFile(destfile).remove();
if(!m_downloadFile->copy(destfile)) {
emit logItem(tr("Installing file failed."), LOGERROR);
emit done(true);
return;

View file

@ -28,11 +28,15 @@
#include "httpget.h"
#include "Logger.h"
/** Install a file or zip.
* Downloads file(s) from a given URL, and installs by either extracting or
* copying it to the target path set by setMountpoint().
*/
class ZipInstaller : public QObject
{
Q_OBJECT
public:
ZipInstaller(QObject* parent) ;
ZipInstaller(QObject* parent);
~ZipInstaller(){}
void install(void);
void setMountPoint(QString mountpoint) {m_mountpoint = mountpoint;}
@ -44,11 +48,12 @@ public:
{ m_verlist = QStringList(v); LOG_INFO() << m_verlist;}
void setLogVersion(QStringList v)
{ m_verlist = v; LOG_INFO() << m_verlist;}
/** Change between copy and unzip mode. */
void setUnzip(bool i) { m_unzip = i; }
/** Set target filename for copy mode.
* If not set the filename part of the download URL is used. */
void setTarget(QString t) { m_target = t; }
void setCache(QDir c) { m_cache = c; m_usecache = true; };
void setCache(bool c) { m_usecache = c; };
void setCache(QString c) { m_cache = QDir(c); m_usecache = true; }
void setCache(bool c) { m_usecache = c; }
public slots:
void abort(void);
@ -70,8 +75,7 @@ private:
QStringList m_urllist, m_loglist, m_verlist;
bool m_unzip;
QString m_target;
int runner;
QDir m_cache;
int m_runner;
bool m_usecache;
HttpGet *m_getter;