diff --git a/include/downloader.h b/include/downloader.h index c9b5ee2..bede8fd 100644 --- a/include/downloader.h +++ b/include/downloader.h @@ -65,14 +65,14 @@ class Downloader virtual ~Downloader(); int init(); int login(); - void listGames(); + int listGames(); void updateCheck(); void repair(); void download(); void checkOrphans(); void checkStatus(); void updateCache(); - void downloadFileWithId(const std::string& fileid_string, const std::string& output_filepath); + int downloadFileWithId(const std::string& fileid_string, const std::string& output_filepath); void showWishlist(); CURL* curlhandle; Timer timer; diff --git a/main.cpp b/main.cpp index b01fdad..ca91491 100644 --- a/main.cpp +++ b/main.cpp @@ -556,6 +556,9 @@ int main(int argc, char *argv[]) return 1; } } + + int res = 0; + if (config.bShowWishlist) downloader.showWishlist(); else if (config.bUpdateCache) @@ -566,7 +569,7 @@ int main(int argc, char *argv[]) { for (std::vector::iterator it = vFileIdStrings.begin(); it != vFileIdStrings.end(); it++) { - downloader.downloadFileWithId(*it, config.sOutputFilename); + res |= downloader.downloadFileWithId(*it, config.sOutputFilename) ? 1 : 0; } } else if (config.bRepair) // Repair file @@ -574,7 +577,7 @@ int main(int argc, char *argv[]) else if (config.bDownload) // Download games downloader.download(); else if (config.bListDetails || config.bList) // Detailed list of games/extras - downloader.listGames(); + res = downloader.listGames(); else if (!config.sOrphanRegex.empty()) // Check for orphaned files if regex for orphans is set downloader.checkOrphans(); else if (config.bCheckStatus) @@ -593,5 +596,5 @@ int main(int argc, char *argv[]) if (!config.sOrphanRegex.empty() && config.bDownload) downloader.checkOrphans(); - return 0; + return res; } diff --git a/src/downloader.cpp b/src/downloader.cpp index 35d262d..3da782d 100644 --- a/src/downloader.cpp +++ b/src/downloader.cpp @@ -496,12 +496,15 @@ int Downloader::getGameDetails() return 0; } -void Downloader::listGames() +int Downloader::listGames() { if (config.bListDetails) // Detailed list { - if (this->games.empty()) - this->getGameDetails(); + if (this->games.empty()) { + int res = this->getGameDetails(); + if (res > 0) + return res; + } for (unsigned int i = 0; i < games.size(); ++i) { @@ -697,6 +700,7 @@ void Downloader::listGames() } } + return 0; } void Downloader::repair() @@ -2791,8 +2795,9 @@ void Downloader::saveChangelog(const std::string& changelog, const std::string& return; } -void Downloader::downloadFileWithId(const std::string& fileid_string, const std::string& output_filepath) +int Downloader::downloadFileWithId(const std::string& fileid_string, const std::string& output_filepath) { + int res = 1; size_t pos = fileid_string.find("/"); if (pos == std::string::npos) { @@ -2826,7 +2831,7 @@ void Downloader::downloadFileWithId(const std::string& fileid_string, const std: else filepath = output_filepath; std::cout << "Downloading: " << filepath << std::endl; - this->downloadFile(url, filepath, std::string(), gamename); + res = this->downloadFile(url, filepath, std::string(), gamename); std::cout << std::endl; } else @@ -2836,7 +2841,7 @@ void Downloader::downloadFileWithId(const std::string& fileid_string, const std: } } - return; + return res; } void Downloader::showWishlist()