Trait sc_cli::SubstrateCli
source · pub trait SubstrateCli: Sized {
Show 15 methods
// Required methods
fn impl_name() -> String;
fn impl_version() -> String;
fn description() -> String;
fn author() -> String;
fn support_url() -> String;
fn copyright_start_year() -> i32;
fn load_spec(&self, id: &str) -> Result<Box<dyn ChainSpec>, String>;
// Provided methods
fn executable_name() -> String { ... }
fn from_args() -> Self
where Self: Parser + Sized { ... }
fn from_iter<I>(iter: I) -> Self
where Self: Parser + Sized,
I: IntoIterator,
I::Item: Into<OsString> + Clone { ... }
fn try_from_iter<I>(iter: I) -> Result<Self>
where Self: Parser + Sized,
I: IntoIterator,
I::Item: Into<OsString> + Clone { ... }
fn client_id() -> String { ... }
fn create_configuration<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
&self,
command: &T,
tokio_handle: Handle
) -> Result<Configuration> { ... }
fn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
&self,
command: &T
) -> Result<Runner<Self>> { ... }
fn create_runner_with_logger_hook<T: CliConfiguration, F>(
&self,
command: &T,
logger_hook: F
) -> Result<Runner<Self>>
where F: FnOnce(&mut LoggerBuilder, &Configuration) { ... }
}
Expand description
Substrate client CLI
This trait needs to be implemented on the root CLI struct of the application. It will provide
the implementation name
, version
, executable name
, description
, author
, support_url
,
copyright start year
and most importantly: how to load the chain spec.
Required Methods§
sourcefn impl_version() -> String
fn impl_version() -> String
Implementation version.
By default this will look like this:
2.0.0-b950f731c
Where the hash is the short commit hash of the commit of in the Git repository.
sourcefn description() -> String
fn description() -> String
Executable file description.
Executable file author.
sourcefn support_url() -> String
fn support_url() -> String
Support URL.
sourcefn copyright_start_year() -> i32
fn copyright_start_year() -> i32
Copyright starting year (x-current year)
Provided Methods§
sourcefn executable_name() -> String
fn executable_name() -> String
Executable file name.
Extracts the file name from std::env::current_exe()
.
Resorts to the env var CARGO_PKG_NAME
in case of Error.
sourcefn from_args() -> Selfwhere
Self: Parser + Sized,
fn from_args() -> Selfwhere Self: Parser + Sized,
Helper function used to parse the command line arguments. This is the equivalent of
[clap::Parser::parse()
].
To allow running the node without subcommand, it also sets a few more settings:
[clap::Command::propagate_version
], [clap::Command::args_conflicts_with_subcommands
],
[clap::Command::subcommand_negates_reqs
].
Creates Self
from the command line arguments. Print the
error message and quit the program in case of failure.
sourcefn from_iter<I>(iter: I) -> Selfwhere
Self: Parser + Sized,
I: IntoIterator,
I::Item: Into<OsString> + Clone,
fn from_iter<I>(iter: I) -> Selfwhere Self: Parser + Sized, I: IntoIterator, I::Item: Into<OsString> + Clone,
Helper function used to parse the command line arguments. This is the equivalent of
[clap::Parser::parse_from
].
To allow running the node without subcommand, it also sets a few more settings:
[clap::Command::propagate_version
], [clap::Command::args_conflicts_with_subcommands
],
[clap::Command::subcommand_negates_reqs
].
Creates Self
from any iterator over arguments.
Print the error message and quit the program in case of failure.
sourcefn try_from_iter<I>(iter: I) -> Result<Self>where
Self: Parser + Sized,
I: IntoIterator,
I::Item: Into<OsString> + Clone,
fn try_from_iter<I>(iter: I) -> Result<Self>where Self: Parser + Sized, I: IntoIterator, I::Item: Into<OsString> + Clone,
Helper function used to parse the command line arguments. This is the equivalent of
[clap::Parser::try_parse_from
]
To allow running the node without subcommand, it also sets a few more settings:
[clap::Command::propagate_version
], [clap::Command::args_conflicts_with_subcommands
],
[clap::Command::subcommand_negates_reqs
].
Creates Self
from any iterator over arguments.
Print the error message and quit the program in case of failure.
NOTE: This method WILL NOT exit when --help
or --version
(or short versions) are
used. It will return a [clap::Error
], where the [clap::Error::kind
] is a
[clap::error::ErrorKind::DisplayHelp
] or [clap::error::ErrorKind::DisplayVersion
]
respectively. You must call [clap::Error::exit
] or perform a std::process::exit
.
sourcefn create_configuration<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
&self,
command: &T,
tokio_handle: Handle
) -> Result<Configuration>
fn create_configuration<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>( &self, command: &T, tokio_handle: Handle ) -> Result<Configuration>
Only create a Configuration for the command provided in argument
sourcefn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>(
&self,
command: &T
) -> Result<Runner<Self>>
fn create_runner<T: CliConfiguration<DVC>, DVC: DefaultConfigurationValues>( &self, command: &T ) -> Result<Runner<Self>>
Create a runner for the command provided in argument. This will create a Configuration and a tokio runtime
sourcefn create_runner_with_logger_hook<T: CliConfiguration, F>(
&self,
command: &T,
logger_hook: F
) -> Result<Runner<Self>>where
F: FnOnce(&mut LoggerBuilder, &Configuration),
fn create_runner_with_logger_hook<T: CliConfiguration, F>( &self, command: &T, logger_hook: F ) -> Result<Runner<Self>>where F: FnOnce(&mut LoggerBuilder, &Configuration),
Create a runner for the command provided in argument. The logger_hook
can be used to setup
a custom profiler or update the logger configuration before it is initialized.
Example:
use sc_tracing::{SpanDatum, TraceEvent};
struct TestProfiler;
impl sc_tracing::TraceHandler for TestProfiler {
fn handle_span(&self, sd: &SpanDatum) {}
fn handle_event(&self, _event: &TraceEvent) {}
};
fn logger_hook() -> impl FnOnce(&mut sc_cli::LoggerBuilder, &sc_service::Configuration) -> () {
|logger_builder, config| {
logger_builder.with_custom_profiling(Box::new(TestProfiler{}));
}
}