aboutsummaryrefslogtreecommitdiff
path: root/src/debug_console.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug_console.rs')
-rw-r--r--src/debug_console.rs64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/debug_console.rs b/src/debug_console.rs
deleted file mode 100644
index 3e673fc..0000000
--- a/src/debug_console.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-pub mod debug_console {
- use clap::{Command, FromArgMatches};
- use clap::ColorChoice::Auto;
- use tokio::io::{AsyncBufReadExt, AsyncWriteExt};
-
- pub async fn read_cli<Cmd>(prefix: &str, entry: String, cmd: Command) -> Option<Cmd>
- where
- Cmd: FromArgMatches,
- {
- let input: String = {
- let mut buffer = String::new();
- let mut stdin = tokio::io::BufReader::new(tokio::io::stdin());
- let mut stdout = tokio::io::stdout();
-
- stdout.write_all(prefix.as_bytes()).await.ok().unwrap();
- stdout.flush().await.ok().unwrap();
-
- stdin.read_line(&mut buffer).await.ok().unwrap();
- buffer.trim().to_string()
- };
-
- process_debug_cli(entry, input, cmd).await
- }
-
- async fn process_debug_cli<Cmd>(entry: String, input: String, cmd: Command) -> Option<Cmd>
- where
- Cmd: FromArgMatches
- {
- if input.trim().is_empty() {
- return None;
- }
-
- let cmd = cmd
- .color(Auto)
- .help_template(
- "{subcommands}{options}"
- )
- .disable_help_flag(true)
- .disable_version_flag(true);
-
- let args = shell_words::split(input.as_str()).unwrap_or_else(|_e| {
- ["".to_string()].to_vec()
- });
-
- let full_args = std::iter::once(entry.into()).chain(args);
-
- match cmd.try_get_matches_from(full_args) {
- Ok(matches) => {
- match Cmd::from_arg_matches(&matches) {
- Ok(cmd) => {
- Some(cmd)
- }
- Err(_err) => {
- None
- }
- }
- }
- Err(err) => {
- println!("{}", err);
- None
- }
- }
- }
-}