#include #include #include #include #include "spacetray.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); if (argc != 2 && argc != 4) { std::cerr << "Usage: " << argv[0] << " [-i|--interval ]\n " << argv[0] << " [-i|--interval ] " << std::endl; return 1; } QString statusUrl; int intervalSeconds = 300; if (argc == 4) { const QString firstArgument = QString::fromLocal8Bit(argv[1]); const bool intervalFirst = firstArgument == "-i" || firstArgument == "--interval"; const QString option = intervalFirst ? firstArgument : QString::fromLocal8Bit(argv[2]); const QString intervalArgument = QString::fromLocal8Bit(argv[intervalFirst ? 2 : 3]); bool validInterval = false; const qlonglong parsedInterval = intervalArgument.toLongLong(&validInterval); const qlonglong maximumSeconds = std::numeric_limits::max() / 1000; if ((option != "-i" && option != "--interval") || !validInterval || parsedInterval <= 0 || parsedInterval > maximumSeconds) { std::cerr << "Invalid interval. Use -i or --interval followed by a positive number of seconds." << std::endl; return 1; } intervalSeconds = static_cast(parsedInterval); statusUrl = QString::fromLocal8Bit(argv[intervalFirst ? 3 : 1]); } else { statusUrl = QString::fromLocal8Bit(argv[1]); } SpaceTray tray(statusUrl, intervalSeconds); return app.exec(); }