diff options
Diffstat (limited to 'yt/src/version/mod.rs')
-rw-r--r-- | yt/src/version/mod.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/yt/src/version/mod.rs b/yt/src/version/mod.rs new file mode 100644 index 0000000..369541e --- /dev/null +++ b/yt/src/version/mod.rs @@ -0,0 +1,32 @@ +use std::process::Command; + +use anyhow::{Context, Result}; + +fn get_cmd_version(cmd: &str) -> Result<String> { + let out = String::from_utf8( + Command::new(cmd) + .arg("--version") + .output() + .with_context(|| format!("Failed to run `{cmd} --version`"))? + .stdout, + ) + .context("Failed to interpret output as utf8")?; + + Ok(out.trim().to_owned()) +} + +pub fn show() -> Result<()> { + let python_version = get_cmd_version("python")?; + let yt_dlp_version = get_cmd_version("yt-dlp")?; + + println!( + "{}: {} + +python: {python_version} +yt-dlp: {yt_dlp_version}", + env!("CARGO_PKG_NAME"), + env!("CARGO_PKG_VERSION"), + ); + + Ok(()) +} |