Add update installer program (Windows only for now)

This commit is contained in:
Connor McLaughlin
2020-08-06 19:33:33 +10:00
parent 045e6dff61
commit 12bef7caa2
10 changed files with 872 additions and 2 deletions

38
src/updater/updater.h Normal file
View File

@@ -0,0 +1,38 @@
#pragma once
#include "common/progress_callback.h"
#include "unzip.h"
#include <string>
#include <vector>
class Updater
{
public:
Updater(ProgressCallback* progress);
~Updater();
bool Initialize(std::string destination_directory);
bool OpenUpdateZip(const char* path);
bool PrepareStagingDirectory();
bool StageUpdate();
bool CommitUpdate();
void CleanupStagingDirectory();
private:
struct FileToUpdate
{
std::string original_zip_filename;
std::string destination_filename;
};
bool ParseZip();
std::string m_destination_directory;
std::string m_staging_directory;
std::vector<FileToUpdate> m_update_paths;
std::vector<std::string> m_update_directories;
ProgressCallback* m_progress;
unzFile m_zf = nullptr;
};