diff options
author | Andrew <forkk@forkk.net> | 2013-03-28 11:37:12 -0500 |
---|---|---|
committer | Andrew <forkk@forkk.net> | 2013-03-28 11:37:12 -0500 |
commit | ebb2c54975e3f0b7b891532e8e72d2ef760f96c4 (patch) | |
tree | 973de7066457a1faddffd3834eb0c260d5191ec2 /test.cpp | |
parent | 168ed3e8e58a8e5065ffa720f8d45f4cee0f2069 (diff) | |
parent | 1f13f0c665001a1a79f00cdad1e63e6c9802e55f (diff) | |
download | MultiMC-ebb2c54975e3f0b7b891532e8e72d2ef760f96c4.tar MultiMC-ebb2c54975e3f0b7b891532e8e72d2ef760f96c4.tar.gz MultiMC-ebb2c54975e3f0b7b891532e8e72d2ef760f96c4.tar.lz MultiMC-ebb2c54975e3f0b7b891532e8e72d2ef760f96c4.tar.xz MultiMC-ebb2c54975e3f0b7b891532e8e72d2ef760f96c4.zip |
Merge branch 'master' of git://github.com/peterix/MultiMC5
Conflicts:
CMakeLists.txt
gui/mainwindow.cpp
Diffstat (limited to 'test.cpp')
-rw-r--r-- | test.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test.cpp b/test.cpp new file mode 100644 index 00000000..2b015454 --- /dev/null +++ b/test.cpp @@ -0,0 +1,60 @@ + +#include <iostream> + +#include "keyring.h" +#include "cmdutils.h" + +using namespace Util::Commandline; + +#include <QCoreApplication> + +int main(int argc, char **argv) +{ + QCoreApplication app(argc, argv); + app.setApplicationName("MMC Keyring test"); + app.setOrganizationName("Orochimarufan"); + + Parser p; + p.addArgument("user", false); + p.addArgument("password", false); + p.addSwitch("set"); + p.addSwitch("get"); + p.addSwitch("list"); + p.addOption("service", "Test"); + p.addShortOpt("service", 's'); + + QHash<QString, QVariant> args; + try { + args = p.parse(app.arguments()); + } catch (ParsingError) { + std::cout << "Syntax error." << std::endl; + return 1; + } + + if (args["set"].toBool()) { + if (args["user"].isNull() || args["password"].isNull()) { + std::cout << "set operation needs bot user and password set" << std::endl; + return 1; + } + + return Keyring::instance()->storePassword(args["service"].toString(), + args["user"].toString(), args["password"].toString()); + } else if (args["get"].toBool()) { + if (args["user"].isNull()) { + std::cout << "get operation needs user set" << std::endl; + return 1; + } + + std::cout << "Password: " << qPrintable(Keyring::instance()->getPassword(args["service"].toString(), + args["user"].toString())) << std::endl; + return 0; + } else if (args["list"].toBool()) { + QStringList accounts = Keyring::instance()->getStoredAccounts(args["service"].toString()); + std::cout << "stored accounts:" << std::endl << '\t' << qPrintable(accounts.join("\n\t")) << std::endl; + return 0; + } else { + std::cout << "No operation given!" << std::endl; + std::cout << qPrintable(p.compileHelp(argv[0])) << std::endl; + return 1; + } +} |