diff --git a/FULL_HELP_DOCS.md b/FULL_HELP_DOCS.md index b8b03c580..8c217b40b 100644 --- a/FULL_HELP_DOCS.md +++ b/FULL_HELP_DOCS.md @@ -1882,3 +1882,1101 @@ Print version information + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --filter-logs**: --filter-logs + + +**Argument --quiet**: --quiet + + +**Argument --verbose**: --verbose + + +**Argument --very-verbose**: --very-verbose, --vv + + +**Argument --list**: --list + + +**Argument --no-cache**: --no-cache + + +**Argument --asset**: --asset + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --asset**: --asset + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --fee**: --fee + + +**Argument --cost**: --cost + + +**Argument --instructions**: --instructions + + +**Argument --build-only**: --build-only + + +**Argument --sim-only**: --sim-only + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --alias**: --alias + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --alias**: --alias + + +**Argument --overwrite**: --overwrite + + +**Argument --contract-id**: --contract-id + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --alias**: --alias + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --wasm**: --wasm + + +**Argument --wasm**: --wasm + + +**Argument --wasm**: --wasm + + +**Argument --output-dir**: --output-dir + + +**Argument --overwrite**: --overwrite + + +**Argument --contract-id**: --contract-id, --id + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --manifest-path**: --manifest-path + + +**Argument --package**: --package + + +**Argument --profile**: --profile + + +**Argument --features**: --features + + +**Argument --all-features**: --all-features + + +**Argument --no-default-features**: --no-default-features + + +**Argument --out-dir**: --out-dir + + +**Argument --print-commands-only**: --print-commands-only + + +**Argument --ledgers-to-extend**: --ledgers-to-extend + + +**Argument --ttl-ledger-only**: --ttl-ledger-only + + +**Argument --contract-id**: --contract-id + + +**Argument --key**: --key + + +**Argument --key-xdr**: --key-xdr + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --durability**: --durability + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --fee**: --fee + + +**Argument --cost**: --cost + + +**Argument --instructions**: --instructions + + +**Argument --build-only**: --build-only + + +**Argument --sim-only**: --sim-only + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --salt**: --salt + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --fee**: --fee + + +**Argument --cost**: --cost + + +**Argument --instructions**: --instructions + + +**Argument --build-only**: --build-only + + +**Argument --sim-only**: --sim-only + + +**Argument --ignore-checks**: --ignore-checks + + +**Argument --alias**: --alias + + +**Argument --contract-id**: --contract-id + + +**Argument --out-file**: --out-file + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --asset**: --asset + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --salt**: --salt + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --contract-id**: --contract-id + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --output**: --output + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --contract-id**: --contract-id + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --output**: --output + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --contract-id**: --contract-id + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --output**: --output + + +**Argument --project-path**: --project-path + + +**Argument --with-example**: --with-example + + +**Argument --frontend-template**: --frontend-template + + +**Argument --overwrite**: --overwrite + + +**Argument --wasm**: --wasm + + +**Argument --output**: --output + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --fee**: --fee + + +**Argument --cost**: --cost + + +**Argument --instructions**: --instructions + + +**Argument --build-only**: --build-only + + +**Argument --sim-only**: --sim-only + + +**Argument --wasm**: --wasm + + +**Argument --ignore-checks**: --ignore-checks + + +**Argument --contract-id**: --contract-id + + +**Argument --is-view**: --is-view + + +**Argument --CONTRACT-FN-AND-ARGS**: --CONTRACT-FN-AND-ARGS + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --fee**: --fee + + +**Argument --cost**: --cost + + +**Argument --instructions**: --instructions + + +**Argument --build-only**: --build-only + + +**Argument --sim-only**: --sim-only + + +**Argument --send**: --send + + +**Argument --wasm**: --wasm + + +**Argument --wasm-out**: --wasm-out + + +**Argument --output**: --output + + +**Argument --contract-id**: --contract-id + + +**Argument --key**: --key + + +**Argument --key-xdr**: --key-xdr + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --durability**: --durability + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --contract-id**: --contract-id + + +**Argument --key**: --key + + +**Argument --key-xdr**: --key-xdr + + +**Argument --wasm**: --wasm + + +**Argument --wasm-hash**: --wasm-hash + + +**Argument --durability**: --durability + + +**Argument --ledgers-to-extend**: --ledgers-to-extend + + +**Argument --ttl-ledger-only**: --ttl-ledger-only + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --fee**: --fee + + +**Argument --cost**: --cost + + +**Argument --instructions**: --instructions + + +**Argument --build-only**: --build-only + + +**Argument --sim-only**: --sim-only + + +**Argument --start-ledger**: --start-ledger + + +**Argument --cursor**: --cursor + + +**Argument --output**: --output + + +**Argument --count**: --count + + +**Argument --contract-ids**: --contract-ids + + +**Argument --topic-filters**: --topic-filters + + +**Argument --event-type**: --event-type + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --name**: --name + + +**Argument --secret-key**: --secret-key + + +**Argument --seed-phrase**: --seed-phrase + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --name**: --name + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --name**: --name + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --name**: --name + + +**Argument --no-fund**: --no-fund + + +**Argument --seed**: --seed + + +**Argument --as-secret**: --as-secret + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --hd-path**: --hd-path + + +**Argument --default-seed**: --default-seed + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --long**: --long + + +**Argument --name**: --name + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --name**: --name + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --name**: --name + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --name**: --name + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --long**: --long + + +**Argument --docker-host**: --docker-host + + +**Argument --network**: --network + + +**Argument --name**: --name + + +**Argument --limits**: --limits + + +**Argument --ports-mapping**: --ports-mapping + + +**Argument --image-tag-override**: --image-tag-override + + +**Argument --protocol-version**: --protocol-version + + +**Argument --docker-host**: --docker-host + + +**Argument --name**: --name + + +**Argument --docker-host**: --docker-host + + +**Argument --name**: --name + + +**Argument --docker-host**: --docker-host + + +**Argument --network**: --network + + +**Argument --name**: --name + + +**Argument --limits**: --limits + + +**Argument --ports-mapping**: --ports-mapping + + +**Argument --image-tag-override**: --image-tag-override + + +**Argument --protocol-version**: --protocol-version + + +**Argument --docker-host**: --docker-host + + +**Argument --name**: --name + + +**Argument --ledger**: --ledger + + +**Argument --address**: --address + + +**Argument --wasm-hashes**: --wasm-hashes + + +**Argument --output**: --output + + +**Argument --out**: --out + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --archive-url**: --archive-url + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --source-account**: --source-account, --source + + +**Argument --hd-path**: --hd-path + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --sign-with-key**: --sign-with-key + + +**Argument --hd-path**: --hd-path + + +**Argument --sign-with-lab**: --sign-with-lab + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --rpc-url**: --rpc-url + + +**Argument --network-passphrase**: --network-passphrase + + +**Argument --network**: --network + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --channel**: --channel + + +**Argument --output**: --output + + +**Argument --type**: --type + + +**Argument --output**: --output + + +**Argument --file**: --file + + +**Argument --input**: --input + + +**Argument --output**: --output + + +**Argument --certainty**: --certainty + + +**Argument --files**: --files + + +**Argument --type**: --type + + +**Argument --input**: --input + + +**Argument --output**: --output + + +**Argument --files**: --files + + +**Argument --type**: --type + + +**Argument --input**: --input + + +**Argument --output**: --output + + +**Argument --shell**: --shell + + +**Argument --global**: --global + + +**Argument --config-dir**: --config-dir + + +**Argument --long**: --long + + +**Argument --id**: --id diff --git a/cmd/soroban-cli/src/bin/doc-gen.rs b/cmd/soroban-cli/src/bin/doc-gen.rs index d3aa3ecb2..33a990a1f 100644 --- a/cmd/soroban-cli/src/bin/doc-gen.rs +++ b/cmd/soroban-cli/src/bin/doc-gen.rs @@ -17,13 +17,52 @@ fn doc_gen() -> std::io::Result<()> { .show_table_of_contents(false) .title("Stellar CLI Manual".to_string()); - let content = clap_markdown::help_markdown_custom::(&options); + let content = generate_markdown_with_aliases::(&options); std::fs::write(out_dir.join("FULL_HELP_DOCS.md"), content)?; Ok(()) } +fn generate_markdown_with_aliases( + options: &clap_markdown::MarkdownOptions, +) -> String { + let command = C::command(); + let mut markdown_content = clap_markdown::help_markdown_custom::(options); + add_aliases_recursively(&command, &mut markdown_content, 2); + markdown_content +} + +fn add_aliases_recursively(command: &clap::Command, content: &mut String, level: usize) { + + for arg in command.get_arguments() { + + let arg_name = format!("--{}", arg.get_id().as_str().to_kebab_case()); + let mut alias_list = vec![]; + + let visible_aliases: Vec = arg + .get_visible_aliases() + .into_iter() + .flatten() + .map(|alias| format!("--{}", alias.to_kebab_case())) + .collect(); + + alias_list.push(arg_name.clone()); + alias_list.extend(visible_aliases); + + content.push_str(&format!( + "\n\n**Argument {}**: {}\n", + arg_name, + alias_list.join(", ") + )); + } + + // Recursively process subcommands + for subcommand in command.get_subcommands() { + add_aliases_recursively(subcommand, content, level + 1); + } +} + fn project_root() -> PathBuf { Path::new(&env!("CARGO_MANIFEST_DIR")) .ancestors() @@ -31,3 +70,19 @@ fn project_root() -> PathBuf { .unwrap() .to_path_buf() } + +trait KebabCase { + fn to_kebab_case(&self) -> String; +} + +impl KebabCase for str { + fn to_kebab_case(&self) -> String { + self.replace('_', "-") + } +} + +impl KebabCase for clap::Id { + fn to_kebab_case(&self) -> String { + self.as_str().to_kebab_case() + } +}