danicoinwallet/src/CommandLineParser.cpp

124 lines
4.3 KiB
C++
Raw Normal View History

2015-04-29 17:03:08 +00:00
// Copyright (c) 2011-2015 The Cryptonote developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
2015-09-18 12:37:30 +00:00
#include <Common/Util.h>
#include <CryptoNoteConfig.h>
2015-04-29 17:03:08 +00:00
#include "CommandLineParser.h"
namespace WalletGui {
2015-09-18 12:37:30 +00:00
CommandLineParser::CommandLineParser(QObject* _parent) : QObject(_parent), m_parser(), m_helpOption(m_parser.addHelpOption()),
m_versionOption(m_parser.addVersionOption()),
m_testnetOption("testnet", tr("Used to deploy test nets. Checkpoints and hardcoded seeds are ignored, network id is changed. "
"Use it with data-dir flag. The wallet must be launched with testnet flag")),
m_p2pBindIpOption("p2p-bind-ip", tr("Interface for p2p network protocol"), tr("ip"), "0.0.0.0"),
m_p2pBindPortOption("p2p-bind-port", tr("Port for p2p network protocol"), tr("port"), QString::number(CryptoNote::P2P_DEFAULT_PORT)),
m_p2pExternalOption("p2p-external-port", tr("xternal port for p2p network protocol (if port forwarding used with NAT)"),
tr("port"), 0),
m_allowLocalIpOption("allow-local-ip", tr("Allow local ip add to peer list, mostly in debug purposes")),
m_addPeerOption("add-peer", tr("Manually add peer to local peerlist"), tr("peer")),
m_addPriorityNodeOption("add-priority-node", tr("Specify list of peers to connect to and attempt to keep the connection open"),
tr("node")),
m_addExclusiveNodeOption("add-exclusive-node", tr("Specify list of peers to connect to only. If this option is given the options "
"add-priority-node and seed-node are ignored"), tr("node")),
m_seedNodeOption("seed-node", tr("Connect to a node to retrieve peer addresses, and disconnect"), tr("node")),
m_hideMyPortOption("hide-my-port", tr("Do not announce yourself as peerlist candidate")),
m_dataDirOption("data-dir", tr("Specify data directory"), tr("directory"), QString::fromStdString(Tools::getDefaultDataDirectory())),
m_minimized("minimized", tr("Run application in minimized mode")) {
2017-12-30 23:16:34 +00:00
m_parser.setApplicationDescription(tr("Danicoin wallet"));
2015-04-29 17:03:08 +00:00
m_parser.addHelpOption();
m_parser.addVersionOption();
2015-09-18 12:37:30 +00:00
m_parser.addOption(m_testnetOption);
m_parser.addOption(m_p2pBindIpOption);
m_parser.addOption(m_p2pBindPortOption);
m_parser.addOption(m_p2pExternalOption);
m_parser.addOption(m_allowLocalIpOption);
m_parser.addOption(m_addPeerOption);
m_parser.addOption(m_addPriorityNodeOption);
m_parser.addOption(m_addExclusiveNodeOption);
m_parser.addOption(m_seedNodeOption);
m_parser.addOption(m_hideMyPortOption);
m_parser.addOption(m_dataDirOption);
m_parser.addOption(m_minimized);
2015-04-29 17:03:08 +00:00
}
CommandLineParser::~CommandLineParser() {
}
2015-09-18 12:37:30 +00:00
bool CommandLineParser::process(const QStringList& _argv) {
2015-04-29 17:03:08 +00:00
#ifdef Q_OS_WIN
2015-09-18 12:37:30 +00:00
return m_parser.parse(_argv);
2015-04-29 17:03:08 +00:00
#else
2015-09-18 12:37:30 +00:00
m_parser.process(_argv);
2015-04-29 17:03:08 +00:00
return true;
#endif
}
bool CommandLineParser::hasHelpOption() const {
2015-09-18 12:37:30 +00:00
return m_parser.isSet(m_helpOption);
}
bool CommandLineParser::hasMinimizedOption() const {
return m_parser.isSet(m_minimized);
2015-04-29 17:03:08 +00:00
}
bool CommandLineParser::hasVersionOption() const {
2015-09-18 12:37:30 +00:00
return m_parser.isSet(m_versionOption);
}
bool CommandLineParser::hasTestnetOption() const {
return m_parser.isSet(m_testnetOption);
}
bool CommandLineParser::hasAllowLocalIpOption() const {
return m_parser.isSet(m_allowLocalIpOption);
}
bool CommandLineParser::hasHideMyPortOption() const {
return m_parser.isSet(m_hideMyPortOption);
2015-04-29 17:03:08 +00:00
}
2015-09-18 12:37:30 +00:00
QString CommandLineParser::getErrorText() const {
2015-04-29 17:03:08 +00:00
return m_parser.errorText();
}
2015-09-18 12:37:30 +00:00
QString CommandLineParser::getHelpText() const {
2015-04-29 17:03:08 +00:00
return m_parser.helpText();
}
2015-09-18 12:37:30 +00:00
QString CommandLineParser::getP2pBindIp() const {
return m_parser.value(m_p2pBindIpOption);
}
quint16 CommandLineParser::getP2pBindPort() const {
return m_parser.value(m_p2pBindPortOption).toUShort();
}
quint16 CommandLineParser::getP2pExternalPort() const {
return m_parser.value(m_p2pExternalOption).toUShort();
}
QStringList CommandLineParser::getPeers() const {
return m_parser.values(m_addPeerOption);
}
QStringList CommandLineParser::getPiorityNodes() const {
return m_parser.values(m_addPriorityNodeOption);
}
QStringList CommandLineParser::getExclusiveNodes() const {
return m_parser.values(m_addExclusiveNodeOption);
}
QStringList CommandLineParser::getSeedNodes() const {
return m_parser.values(m_seedNodeOption);
}
2015-04-29 17:03:08 +00:00
QString CommandLineParser::getDataDir() const {
2015-09-18 12:37:30 +00:00
return m_parser.value(m_dataDirOption);
2015-04-29 17:03:08 +00:00
}
}