Electroneum
command_line_args.h
Go to the documentation of this file.
1 // Copyrights(c) 2017-2021, The Electroneum Project
2 // Copyrights(c) 2014-2019, The Monero Project
3 //
4 // All rights reserved.
5 //
6 // Redistribution and use in source and binary forms, with or without modification, are
7 // permitted provided that the following conditions are met:
8 //
9 // 1. Redistributions of source code must retain the above copyright notice, this list of
10 // conditions and the following disclaimer.
11 //
12 // 2. Redistributions in binary form must reproduce the above copyright notice, this list
13 // of conditions and the following disclaimer in the documentation and/or other
14 // materials provided with the distribution.
15 //
16 // 3. Neither the name of the copyright holder nor the names of its contributors may be
17 // used to endorse or promote products derived from this software without specific
18 // prior written permission.
19 //
20 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
21 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
22 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
23 // THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
28 // THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 
30 #ifndef DAEMON_COMMAND_LINE_ARGS_H
31 #define DAEMON_COMMAND_LINE_ARGS_H
32 
33 #include "common/command_line.h"
34 #include "cryptonote_config.h"
35 #include "daemonizer/daemonizer.h"
36 
37 namespace daemon_args
38 {
39  std::string const WINDOWS_SERVICE_NAME = "Electroneum Daemon";
40 
42  "config-file"
43  , "Specify configuration file"
46  , [](std::array<bool, 2> testnet_stagenet, bool defaulted, std::string val)->std::string {
47  if (testnet_stagenet[0] && defaulted)
48  return (daemonizer::get_default_data_dir() / "testnet" /
49  std::string(CRYPTONOTE_NAME ".conf")).string();
50  else if (testnet_stagenet[1] && defaulted)
51  return (daemonizer::get_default_data_dir() / "stagenet" /
52  std::string(CRYPTONOTE_NAME ".conf")).string();
53  return val;
54  }
55  };
57  "log-file"
58  , "Specify log file"
61  , [](std::array<bool, 2> testnet_stagenet, bool defaulted, std::string val)->std::string {
62  if (testnet_stagenet[0] && defaulted)
63  return (daemonizer::get_default_data_dir() / "testnet" /
64  std::string(CRYPTONOTE_NAME ".log")).string();
65  else if (testnet_stagenet[1] && defaulted)
66  return (daemonizer::get_default_data_dir() / "stagenet" /
67  std::string(CRYPTONOTE_NAME ".log")).string();
68  return val;
69  }
70  };
72  "max-log-file-size"
73  , "Specify maximum log file size [B]"
75  };
77  "max-log-files"
78  , "Specify maximum number of rotated log files to be saved (no limit by setting to 0)"
80  };
82  "log-level"
83  , ""
84  , ""
85  };
87  "daemon_command"
88  , "Hidden"
89  };
91  "os-version"
92  , "OS for which this executable was compiled"
93  };
95  "max-concurrency"
96  , "Max number of threads to use for a parallel job"
97  , 0
98  };
99 
101  "public-node"
102  , "Allow other users to use the node as a remote (restricted RPC mode, view-only commands) and advertise it over P2P"
103  , false
104  };
105 
107  "zmq-rpc-bind-ip"
108  , "IP for ZMQ RPC server to listen on"
109  , "127.0.0.1"
110  };
111 
113  "zmq-rpc-bind-port"
114  , "Port for ZMQ RPC server to listen on"
117  , [](std::array<bool, 2> testnet_stagenet, bool defaulted, std::string val)->std::string {
118  if (testnet_stagenet[0] && defaulted)
120  if (testnet_stagenet[1] && defaulted)
122  return val;
123  }
124  };
125 
127  "no-zmq"
128  , "Disable ZMQ RPC server"
129  };
130 
131 } // namespace daemon_args
132 
133 #endif // DAEMON_COMMAND_LINE_ARGS_H
uint16_t const ZMQ_RPC_DEFAULT_PORT
const command_line::arg_descriptor< std::vector< std::string > > arg_command
::std::string string
Definition: gtest-port.h:1097
const command_line::arg_descriptor< bool > arg_os_version
const command_line::arg_descriptor< std::string > arg_zmq_rpc_bind_ip
const command_line::arg_descriptor< bool, false > arg_stagenet_on
const command_line::arg_descriptor< std::string, false, true, 2 > arg_log_file
const command_line::arg_descriptor< std::size_t > arg_max_log_file_size
const command_line::arg_descriptor< unsigned > arg_max_concurrency
#define MAX_LOG_FILE_SIZE
Definition: misc_log_ex.h:38
const command_line::arg_descriptor< std::string, false, true, 2 > arg_zmq_rpc_bind_port
const command_line::arg_descriptor< bool, false > arg_testnet_on
#define CRYPTONOTE_NAME
uint16_t const ZMQ_RPC_DEFAULT_PORT
const command_line::arg_descriptor< std::string > arg_log_level
boost::filesystem::path get_default_data_dir()
Returns the default data directory.
Definition: util.cpp:600
uint16_t const ZMQ_RPC_DEFAULT_PORT
const command_line::arg_descriptor< bool > arg_zmq_rpc_disabled
const command_line::arg_descriptor< std::string, false, true, 2 > arg_config_file
const command_line::arg_descriptor< bool > arg_public_node
std::string const WINDOWS_SERVICE_NAME
#define MAX_LOG_FILES
Definition: misc_log_ex.h:39
std::string to_string(t_connection_type type)
const command_line::arg_descriptor< std::size_t > arg_max_log_files