src_prepare-overlay/games-util/lgogdownloader/files/0001-recycle-cookies-and-tokens.patch

45 lines
2.0 KiB
Diff

--- a/src/downloader.cpp 2020-04-17 15:41:32.142346898 +0200
+++ b/src/downloader.cpp 2020-04-17 14:54:23.614337011 +0200
@@ -255,21 +255,27 @@
else
{
if (!isatty(STDIN_FILENO)) {
- std::cerr << "Unable to read email and password" << std::endl;
- return 0;
- }
- std::cerr << "Email: ";
- std::getline(std::cin,email);
+ /* Attempt to read this stuff from elsewhere */
+ bool cookie_gone = boost::filesystem::exists(Globals::globalConfig.curlConf.sCookiePath);
+ bool tokens_gone = boost::filesystem::exists(Globals::globalConfig.sConfigDirectory + "/galaxy_tokens.json");
+ if(cookie_gone || tokens_gone) {
+ std::cerr << "Unable to read email and password" << std::endl;
+ return 0;
+ }
+ } else {
+ std::cerr << "Email: ";
+ std::getline(std::cin,email);
- std::cerr << "Password: ";
- struct termios termios_old, termios_new;
- tcgetattr(STDIN_FILENO, &termios_old); // Get current terminal attributes
- termios_new = termios_old;
- termios_new.c_lflag &= ~ECHO; // Set ECHO off
- tcsetattr(STDIN_FILENO, TCSANOW, &termios_new); // Set terminal attributes
- std::getline(std::cin, password);
- tcsetattr(STDIN_FILENO, TCSANOW, &termios_old); // Restore old terminal attributes
- std::cerr << std::endl;
+ std::cerr << "Password: ";
+ struct termios termios_old, termios_new;
+ tcgetattr(STDIN_FILENO, &termios_old); // Get current terminal attributes
+ termios_new = termios_old;
+ termios_new.c_lflag &= ~ECHO; // Set ECHO off
+ tcsetattr(STDIN_FILENO, TCSANOW, &termios_new); // Set terminal attributes
+ std::getline(std::cin, password);
+ tcsetattr(STDIN_FILENO, TCSANOW, &termios_old); // Restore old terminal attributes
+ std::cerr << std::endl;
+ }
}
if (email.empty() || password.empty())