options: add testnet option dependencies

This commit is contained in:
whythat 2018-01-22 03:49:51 +02:00
parent c5f55bb4c0
commit b3b2d4d20c
5 changed files with 45 additions and 19 deletions

View file

@ -74,9 +74,13 @@ namespace cryptonote
const command_line::arg_descriptor<std::string, false, true> arg_data_dir = { const command_line::arg_descriptor<std::string, false, true> arg_data_dir = {
"data-dir" "data-dir"
, "Specify data directory" , "Specify data directory"
, arg_testnet_on
, (boost::filesystem::path(tools::get_default_data_dir()) / "testnet").string()
, tools::get_default_data_dir() , tools::get_default_data_dir()
, arg_testnet_on
, [](bool testnet, bool defaulted, std::string val) {
if (testnet)
return (boost::filesystem::path(val) / "testnet").string();
return val;
}
}; };
const command_line::arg_descriptor<bool> arg_offline = { const command_line::arg_descriptor<bool> arg_offline = {
"offline" "offline"

View file

@ -31,20 +31,35 @@
#include "common/command_line.h" #include "common/command_line.h"
#include "cryptonote_config.h" #include "cryptonote_config.h"
#include "daemonizer/daemonizer.h"
namespace daemon_args namespace daemon_args
{ {
std::string const WINDOWS_SERVICE_NAME = "Monero Daemon"; std::string const WINDOWS_SERVICE_NAME = "Monero Daemon";
const command_line::arg_descriptor<std::string> arg_config_file = { const command_line::arg_descriptor<std::string, false, true> arg_config_file = {
"config-file" "config-file"
, "Specify configuration file" , "Specify configuration file"
, std::string(CRYPTONOTE_NAME ".conf") , (daemonizer::get_default_data_dir() / std::string(CRYPTONOTE_NAME ".conf")).string()
, cryptonote::arg_testnet_on
, [](bool testnet, bool defaulted, std::string val) {
if (testnet && defaulted)
return (daemonizer::get_default_data_dir() / "testnet" /
std::string(CRYPTONOTE_NAME ".conf")).string();
return val;
}
}; };
const command_line::arg_descriptor<std::string> arg_log_file = { const command_line::arg_descriptor<std::string, false, true> arg_log_file = {
"log-file" "log-file"
, "Specify log file" , "Specify log file"
, "" , (daemonizer::get_default_data_dir() / std::string(CRYPTONOTE_NAME ".log")).string()
, cryptonote::arg_testnet_on
, [](bool testnet, bool defaulted, std::string val) {
if (testnet && defaulted)
return (daemonizer::get_default_data_dir() / "testnet" /
std::string(CRYPTONOTE_NAME ".log")).string();
return val;
}
}; };
const command_line::arg_descriptor<std::size_t> arg_max_log_file_size = { const command_line::arg_descriptor<std::size_t> arg_max_log_file_size = {
"max-log-file-size" "max-log-file-size"
@ -79,9 +94,13 @@ namespace daemon_args
const command_line::arg_descriptor<std::string, false, true> arg_zmq_rpc_bind_port = { const command_line::arg_descriptor<std::string, false, true> arg_zmq_rpc_bind_port = {
"zmq-rpc-bind-port" "zmq-rpc-bind-port"
, "Port for ZMQ RPC server to listen on" , "Port for ZMQ RPC server to listen on"
, cryptonote::arg_testnet_on
, std::to_string(config::testnet::ZMQ_RPC_DEFAULT_PORT)
, std::to_string(config::ZMQ_RPC_DEFAULT_PORT) , std::to_string(config::ZMQ_RPC_DEFAULT_PORT)
, cryptonote::arg_testnet_on
, [](bool testnet, bool defaulted, std::string val) {
if (testnet && defaulted)
return std::to_string(config::testnet::ZMQ_RPC_DEFAULT_PORT);
return val;
}
}; };
} // namespace daemon_args } // namespace daemon_args

View file

@ -73,20 +73,15 @@ int main(int argc, char const * argv[])
po::options_description core_settings("Settings"); po::options_description core_settings("Settings");
po::positional_options_description positional_options; po::positional_options_description positional_options;
{ {
bf::path default_data_dir = daemonizer::get_default_data_dir();
bf::path default_testnet_data_dir = {default_data_dir / "testnet"};
// Misc Options // Misc Options
command_line::add_arg(visible_options, command_line::arg_help); command_line::add_arg(visible_options, command_line::arg_help);
command_line::add_arg(visible_options, command_line::arg_version); command_line::add_arg(visible_options, command_line::arg_version);
command_line::add_arg(visible_options, daemon_args::arg_os_version); command_line::add_arg(visible_options, daemon_args::arg_os_version);
bf::path default_conf = default_data_dir / std::string(CRYPTONOTE_NAME ".conf"); command_line::add_arg(visible_options, daemon_args::arg_config_file);
command_line::add_arg(visible_options, daemon_args::arg_config_file, default_conf.string());
// Settings // Settings
bf::path default_log = default_data_dir / std::string(CRYPTONOTE_NAME ".log"); command_line::add_arg(core_settings, daemon_args::arg_log_file);
command_line::add_arg(core_settings, daemon_args::arg_log_file, default_log.string());
command_line::add_arg(core_settings, daemon_args::arg_log_level); command_line::add_arg(core_settings, daemon_args::arg_log_level);
command_line::add_arg(core_settings, daemon_args::arg_max_log_file_size); command_line::add_arg(core_settings, daemon_args::arg_max_log_file_size);
command_line::add_arg(core_settings, daemon_args::arg_max_concurrency); command_line::add_arg(core_settings, daemon_args::arg_max_concurrency);

View file

@ -37,9 +37,13 @@ namespace nodetool
const command_line::arg_descriptor<std::string, false, true> arg_p2p_bind_port = { const command_line::arg_descriptor<std::string, false, true> arg_p2p_bind_port = {
"p2p-bind-port" "p2p-bind-port"
, "Port for p2p network protocol" , "Port for p2p network protocol"
, cryptonote::arg_testnet_on
, std::to_string(config::testnet::P2P_DEFAULT_PORT)
, std::to_string(config::P2P_DEFAULT_PORT) , std::to_string(config::P2P_DEFAULT_PORT)
, cryptonote::arg_testnet_on
, [](bool testnet, bool defaulted, std::string val) {
if (testnet && defaulted)
return std::to_string(config::testnet::P2P_DEFAULT_PORT);
return val;
}
}; };
const command_line::arg_descriptor<uint32_t> arg_p2p_external_port = {"p2p-external-port", "External port for p2p network protocol (if port forwarding used with NAT)", 0}; const command_line::arg_descriptor<uint32_t> arg_p2p_external_port = {"p2p-external-port", "External port for p2p network protocol (if port forwarding used with NAT)", 0};
const command_line::arg_descriptor<bool> arg_p2p_allow_local_ip = {"allow-local-ip", "Allow local ip add to peer list, mostly in debug purposes"}; const command_line::arg_descriptor<bool> arg_p2p_allow_local_ip = {"allow-local-ip", "Allow local ip add to peer list, mostly in debug purposes"};

View file

@ -2076,9 +2076,13 @@ namespace cryptonote
const command_line::arg_descriptor<std::string, false, true> core_rpc_server::arg_rpc_bind_port = { const command_line::arg_descriptor<std::string, false, true> core_rpc_server::arg_rpc_bind_port = {
"rpc-bind-port" "rpc-bind-port"
, "Port for RPC server" , "Port for RPC server"
, cryptonote::arg_testnet_on
, std::to_string(config::testnet::RPC_DEFAULT_PORT)
, std::to_string(config::RPC_DEFAULT_PORT) , std::to_string(config::RPC_DEFAULT_PORT)
, cryptonote::arg_testnet_on
, [](bool testnet, bool defaulted, std::string val) {
if (testnet && defaulted)
return std::to_string(config::testnet::RPC_DEFAULT_PORT);
return val;
}
}; };
const command_line::arg_descriptor<std::string> core_rpc_server::arg_rpc_restricted_bind_port = { const command_line::arg_descriptor<std::string> core_rpc_server::arg_rpc_restricted_bind_port = {