mayu/main.cpp

92 lines
3.0 KiB
C++
Raw Normal View History

2018-05-04 16:53:00 +02:00
/*****************************************************************************
* mayu Mate Are You Up
2019-04-14 17:22:45 +02:00
* Copyright (C) 2019 Syping
2018-05-04 16:53:00 +02:00
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*****************************************************************************/
#include <QCoreApplication>
2018-05-15 08:10:24 +02:00
#include <QStringList>
#include <QTextStream>
#include <QString>
2018-05-04 16:53:00 +02:00
#include <QDebug>
#include "mayu.h"
int main(int argc, char *argv[])
{
2018-05-09 22:47:45 +02:00
QCoreApplication::setSetuidAllowed(true);
2018-05-04 16:53:00 +02:00
QCoreApplication a(argc, argv);
a.setApplicationName("mayu");
QStringList arguments = a.arguments();
arguments.removeAt(0);
2018-05-15 08:46:11 +02:00
bool a_clean = false;
2018-05-15 08:10:24 +02:00
mayuMode a_mode = mayuMode::Ping;
for (int i = arguments.length(); i > 0; i--) {
const QString &argument = arguments.at(i-1);
2018-05-16 02:37:03 +02:00
if (argument.left(2) == "--") {
if (argument == "--ping") {
a_mode = mayuMode::Ping;
arguments.removeAt(i-1);
}
else if (argument == "--resolve") {
a_mode = mayuMode::Resolve;
arguments.removeAt(i-1);
}
else if (argument == "--clean") {
a_clean = true;
arguments.removeAt(i-1);
}
else {
QTextStream(stderr) << "Unknown Option found: " << argument << endl;
return 4;
}
2018-05-15 08:46:11 +02:00
}
2018-05-16 02:37:03 +02:00
else if (argument.left(1) == "-" && argument.length() != 1) {
for (int ii = argument.length(); ii > 0; ii--) {
switch (argument.at(ii-1).cell()) {
case 'p':
a_mode = mayuMode::Ping;
break;
case 'r':
a_mode = mayuMode::Resolve;
break;
case 'c':
a_clean = true;
break;
case '-':
break;
default:
QTextStream(stderr) << "Unknown Option found: " << argument.at(ii-1) << endl;
return 4;
}
}
2018-05-15 08:46:11 +02:00
arguments.removeAt(i-1);
}
2018-05-15 08:10:24 +02:00
}
2018-05-04 16:53:00 +02:00
if (arguments.length() >= 2) {
2018-05-09 23:04:54 +02:00
mayu a_mayu(arguments.at(0), arguments.at(1));
2018-05-15 08:10:24 +02:00
a_mayu.setMayuMode(a_mode);
2018-05-15 08:46:11 +02:00
a_mayu.setCleanUp(a_clean);
2018-05-04 16:53:00 +02:00
a_mayu.work();
return a_mayu.getResult();
}
2018-05-15 08:10:24 +02:00
else {
2018-05-16 02:49:59 +02:00
QTextStream(stderr) << "Usage: " << a.arguments().at(0) << " [-cpr]" << " [--clean]" << " [--ping]" << " [--resolve]" << " [HOSTS FILE]" << " [OUTPUT FILE]" << endl;
2018-05-15 08:10:24 +02:00
}
2018-05-04 16:53:00 +02:00
return 0;
}