mirror of
https://github.com/HamletDuFromage/aio-switch-updater.git
synced 2024-12-29 10:56:01 +00:00
Fixed stuck extracting progress bar
This commit is contained in:
parent
fa63d66027
commit
1b56d6f15a
4 changed files with 30 additions and 4 deletions
2
Makefile
2
Makefile
|
@ -45,7 +45,7 @@ DATA := data
|
||||||
INCLUDES := include lib/minizip/include
|
INCLUDES := include lib/minizip/include
|
||||||
APP_TITLE := AIO Switch Updater
|
APP_TITLE := AIO Switch Updater
|
||||||
APP_AUTHOR := HamletDuFromage
|
APP_AUTHOR := HamletDuFromage
|
||||||
APP_VERSION := 1.0.1
|
APP_VERSION := 1.0.3
|
||||||
|
|
||||||
#ROMFS := $(BUILD)/romfs
|
#ROMFS := $(BUILD)/romfs
|
||||||
BOREALIS_PATH := lib/borealis
|
BOREALIS_PATH := lib/borealis
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#define SIGPATCHES_URL "https://hamletdufromage.github.io/sigpatches-updater/sigpatches.html"
|
#define SIGPATCHES_URL "https://hamletdufromage.github.io/sigpatches-updater/sigpatches.html"
|
||||||
#define SIGPATCHES_FILENAME "/config/aio-switch-updater/sigpatches.zip"
|
#define SIGPATCHES_FILENAME "/config/aio-switch-updater/sigpatches.zip"
|
||||||
|
#define HEKATE_IPL_PATH "/bootloader/hekate_ipl.ini"
|
||||||
|
|
||||||
#define FIRMWARE_URL "https://hamletdufromage.github.io/switch-fw/firmwares.html"
|
#define FIRMWARE_URL "https://hamletdufromage.github.io/switch-fw/firmwares.html"
|
||||||
#define FIRMWARE_FILENAME "/config/aio-switch-updater/firmware.zip"
|
#define FIRMWARE_FILENAME "/config/aio-switch-updater/firmware.zip"
|
||||||
|
|
|
@ -2,10 +2,11 @@
|
||||||
|
|
||||||
void extract(const char * filename, const char* workingPath, int overwriteInis){
|
void extract(const char * filename, const char* workingPath, int overwriteInis){
|
||||||
ProgressEvent::instance().reset();
|
ProgressEvent::instance().reset();
|
||||||
|
ProgressEvent::instance().setStep(1);
|
||||||
chdir(workingPath);
|
chdir(workingPath);
|
||||||
zipper::Unzipper unzipper(filename);
|
zipper::Unzipper unzipper(filename);
|
||||||
std::vector<zipper::ZipEntry> entries = unzipper.entries();
|
std::vector<zipper::ZipEntry> entries = unzipper.entries();
|
||||||
ProgressEvent::instance().setTotalSteps(entries.size());
|
ProgressEvent::instance().setTotalSteps(entries.size() + 1);
|
||||||
for (int i = 0; i < (int) entries.size(); i++){
|
for (int i = 0; i < (int) entries.size(); i++){
|
||||||
if(overwriteInis == 0){
|
if(overwriteInis == 0){
|
||||||
if(entries[i].name.substr(entries[i].name.length() - 4) != ".ini")
|
if(entries[i].name.substr(entries[i].name.length() - 4) != ".ini")
|
||||||
|
@ -17,7 +18,7 @@ void extract(const char * filename, const char* workingPath, int overwriteInis){
|
||||||
ProgressEvent::instance().setStep(i);
|
ProgressEvent::instance().setStep(i);
|
||||||
}
|
}
|
||||||
unzipper.close();
|
unzipper.close();
|
||||||
ProgressEvent::instance().setStep(entries.size());
|
ProgressEvent::instance().setStep(ProgressEvent::instance().getMax());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,31 @@ void extractArchive(archiveType type){
|
||||||
|
|
||||||
switch(type){
|
switch(type){
|
||||||
case sigpatches:
|
case sigpatches:
|
||||||
if(isArchive(SIGPATCHES_FILENAME)) extract(SIGPATCHES_FILENAME);
|
if(isArchive(SIGPATCHES_FILENAME)) {
|
||||||
|
std::string backup(HEKATE_IPL_PATH);
|
||||||
|
backup += ".old";
|
||||||
|
if(std::filesystem::exists(HEKATE_IPL_PATH)){
|
||||||
|
dialog->open();
|
||||||
|
while(overwriteInis == -1){
|
||||||
|
usleep(1);
|
||||||
|
overwriteInis = dialogResult;
|
||||||
|
}
|
||||||
|
dialogResult = -1;
|
||||||
|
if(overwriteInis == 0){
|
||||||
|
std::filesystem::remove(backup);
|
||||||
|
std::filesystem::rename(HEKATE_IPL_PATH, backup);
|
||||||
|
extract(SIGPATCHES_FILENAME);
|
||||||
|
std::filesystem::remove(HEKATE_IPL_PATH);
|
||||||
|
std::filesystem::rename(backup, HEKATE_IPL_PATH);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
extract(SIGPATCHES_FILENAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
extract(SIGPATCHES_FILENAME);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case cheats:
|
case cheats:
|
||||||
titles = getInstalledTitlesNs();
|
titles = getInstalledTitlesNs();
|
||||||
|
|
Loading…
Reference in a new issue