44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
#include <QApplication>
|
|
#include <QString>
|
|
#include <iostream>
|
|
#include <limits>
|
|
#include "spacetray.h"
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
QApplication app(argc, argv);
|
|
|
|
if (argc != 2 && argc != 4) {
|
|
std::cerr << "Usage: " << argv[0]
|
|
<< " <statusurl> [-i|--interval <seconds>]\n " << argv[0]
|
|
<< " [-i|--interval <seconds>] <statusurl>" << 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<int>::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<int>(parsedInterval);
|
|
statusUrl = QString::fromLocal8Bit(argv[intervalFirst ? 3 : 1]);
|
|
} else {
|
|
statusUrl = QString::fromLocal8Bit(argv[1]);
|
|
}
|
|
|
|
SpaceTray tray(statusUrl, intervalSeconds);
|
|
|
|
return app.exec();
|
|
}
|