mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-21 08:41:01 +00:00
caa987d26d
This PR makes a small change the the adder parachain's CLI. It allows the user to specify an output file explicitly when generating the genesis wasm and head data. Now we no longer have to rely on redirecting the output to a file at the shell level. This change is nice because if you have any debugging lines enabled, shell redirection does not work. More to the point, this makes the adder parachain's CLI match the cumulus collator's CLI. And that will allow tools like Zombienet (that support both cumulus and the adder) to use the positional argument. cc @pepoviola --------- Co-authored-by: Joshy Orndorff <git-user-email.h0ly5@simplelogin.com> Co-authored-by: Bastian Köcher <git@kchr.de>
118 lines
3.0 KiB
Rust
118 lines
3.0 KiB
Rust
// Copyright (C) Parity Technologies (UK) Ltd.
|
|
// This file is part of Polkadot.
|
|
|
|
// Polkadot is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
|
|
// Polkadot is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
//! Polkadot CLI library.
|
|
|
|
use clap::Parser;
|
|
use sc_cli::SubstrateCli;
|
|
use std::path::PathBuf;
|
|
|
|
/// Sub-commands supported by the collator.
|
|
#[derive(Debug, Parser)]
|
|
pub enum Subcommand {
|
|
/// Export the genesis state of the parachain.
|
|
#[command(name = "export-genesis-state")]
|
|
ExportGenesisState(ExportGenesisHeadCommand),
|
|
|
|
/// Export the genesis wasm of the parachain.
|
|
#[command(name = "export-genesis-wasm")]
|
|
ExportGenesisWasm(ExportGenesisWasmCommand),
|
|
}
|
|
|
|
/// Command for exporting the genesis head data of the parachain
|
|
#[derive(Debug, Parser)]
|
|
pub struct ExportGenesisHeadCommand {
|
|
/// Output file name or stdout if unspecified.
|
|
#[arg()]
|
|
pub output: Option<PathBuf>,
|
|
}
|
|
|
|
/// Command for exporting the genesis wasm file.
|
|
#[derive(Debug, Parser)]
|
|
pub struct ExportGenesisWasmCommand {
|
|
/// Output file name or stdout if unspecified.
|
|
#[arg()]
|
|
pub output: Option<PathBuf>,
|
|
}
|
|
|
|
#[allow(missing_docs)]
|
|
#[derive(Debug, Parser)]
|
|
#[group(skip)]
|
|
pub struct RunCmd {
|
|
#[allow(missing_docs)]
|
|
#[clap(flatten)]
|
|
pub base: sc_cli::RunCmd,
|
|
|
|
/// Id of the parachain this collator collates for.
|
|
#[arg(long)]
|
|
pub parachain_id: Option<u32>,
|
|
}
|
|
|
|
#[allow(missing_docs)]
|
|
#[derive(Debug, Parser)]
|
|
pub struct Cli {
|
|
#[command(subcommand)]
|
|
pub subcommand: Option<Subcommand>,
|
|
|
|
#[clap(flatten)]
|
|
pub run: RunCmd,
|
|
}
|
|
|
|
impl SubstrateCli for Cli {
|
|
fn impl_name() -> String {
|
|
"Parity Polkadot".into()
|
|
}
|
|
|
|
fn impl_version() -> String {
|
|
"0.0.0".into()
|
|
}
|
|
|
|
fn description() -> String {
|
|
env!("CARGO_PKG_DESCRIPTION").into()
|
|
}
|
|
|
|
fn author() -> String {
|
|
env!("CARGO_PKG_AUTHORS").into()
|
|
}
|
|
|
|
fn support_url() -> String {
|
|
"https://github.com/paritytech/polkadot-sdk/issues/new".into()
|
|
}
|
|
|
|
fn copyright_start_year() -> i32 {
|
|
2017
|
|
}
|
|
|
|
fn executable_name() -> String {
|
|
"adder-collator".into()
|
|
}
|
|
|
|
fn load_spec(&self, id: &str) -> std::result::Result<Box<dyn sc_service::ChainSpec>, String> {
|
|
let id = if id.is_empty() { "rococo" } else { id };
|
|
Ok(match id {
|
|
"rococo-staging" =>
|
|
Box::new(polkadot_service::chain_spec::rococo_staging_testnet_config()?),
|
|
"rococo-local" =>
|
|
Box::new(polkadot_service::chain_spec::rococo_local_testnet_config()?),
|
|
"rococo" => Box::new(polkadot_service::chain_spec::rococo_config()?),
|
|
path => {
|
|
let path = std::path::PathBuf::from(path);
|
|
Box::new(polkadot_service::RococoChainSpec::from_json_file(path)?)
|
|
},
|
|
})
|
|
}
|
|
}
|