mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 09:57:56 +00:00
Adder Parachain: Accept output file argument to export-genesis-* subcommands (#2370)
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>
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
|
||||
use clap::Parser;
|
||||
use sc_cli::SubstrateCli;
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// Sub-commands supported by the collator.
|
||||
#[derive(Debug, Parser)]
|
||||
@@ -33,11 +34,19 @@ pub enum Subcommand {
|
||||
|
||||
/// Command for exporting the genesis head data of the parachain
|
||||
#[derive(Debug, Parser)]
|
||||
pub struct ExportGenesisHeadCommand {}
|
||||
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 {}
|
||||
pub struct ExportGenesisWasmCommand {
|
||||
/// Output file name or stdout if unspecified.
|
||||
#[arg()]
|
||||
pub output: Option<PathBuf>,
|
||||
}
|
||||
|
||||
#[allow(missing_docs)]
|
||||
#[derive(Debug, Parser)]
|
||||
|
||||
@@ -22,6 +22,10 @@ use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProt
|
||||
use polkadot_primitives::Id as ParaId;
|
||||
use sc_cli::{Error as SubstrateCliError, SubstrateCli};
|
||||
use sp_core::hexdisplay::HexDisplay;
|
||||
use std::{
|
||||
fs,
|
||||
io::{self, Write},
|
||||
};
|
||||
use test_parachain_adder_collator::Collator;
|
||||
|
||||
/// The parachain ID to collate for in case it wasn't set explicitly through CLI.
|
||||
@@ -34,15 +38,29 @@ fn main() -> Result<()> {
|
||||
let cli = Cli::from_args();
|
||||
|
||||
match cli.subcommand {
|
||||
Some(cli::Subcommand::ExportGenesisState(_params)) => {
|
||||
Some(cli::Subcommand::ExportGenesisState(params)) => {
|
||||
let collator = Collator::new();
|
||||
println!("0x{:?}", HexDisplay::from(&collator.genesis_head()));
|
||||
let output_buf =
|
||||
format!("0x{:?}", HexDisplay::from(&collator.genesis_head())).into_bytes();
|
||||
|
||||
if let Some(output) = params.output {
|
||||
std::fs::write(output, output_buf)?;
|
||||
} else {
|
||||
std::io::stdout().write_all(&output_buf)?;
|
||||
}
|
||||
|
||||
Ok::<_, Error>(())
|
||||
},
|
||||
Some(cli::Subcommand::ExportGenesisWasm(_params)) => {
|
||||
Some(cli::Subcommand::ExportGenesisWasm(params)) => {
|
||||
let collator = Collator::new();
|
||||
println!("0x{:?}", HexDisplay::from(&collator.validation_code()));
|
||||
let output_buf =
|
||||
format!("0x{:?}", HexDisplay::from(&collator.validation_code())).into_bytes();
|
||||
|
||||
if let Some(output) = params.output {
|
||||
fs::write(output, output_buf)?;
|
||||
} else {
|
||||
io::stdout().write_all(&output_buf)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
},
|
||||
|
||||
@@ -54,9 +54,9 @@ fn main() -> Result<()> {
|
||||
Some(cli::Subcommand::ExportGenesisWasm(params)) => {
|
||||
// We pass some dummy values for `pov_size` and `pvf_complexity` as these don't
|
||||
// matter for `wasm` export.
|
||||
let collator = Collator::default();
|
||||
let output_buf =
|
||||
format!("0x{:?}", HexDisplay::from(&Collator::default().validation_code()))
|
||||
.into_bytes();
|
||||
format!("0x{:?}", HexDisplay::from(&collator.validation_code())).into_bytes();
|
||||
|
||||
if let Some(output) = params.output {
|
||||
fs::write(output, output_buf)?;
|
||||
|
||||
Reference in New Issue
Block a user