diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/main.rs b/src/main.rs index df34235..530adac 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,13 +1,13 @@ use std::env; use std::ffi::OsString; use std::fmt::Debug; -use std::fs::{DirEntry, metadata, read_dir, read_to_string}; +use std::fs::{metadata, read_dir, read_to_string, DirEntry}; use std::io; use std::path::{Path, PathBuf}; -use std::process::{Command, Stdio, ExitStatus}; +use std::process::{Command, ExitStatus, Stdio}; use std::string::FromUtf8Error; -use clap::Clap; +use clap::Parser; use thiserror::Error; /// Load environment variables from DIR (or ~/.envdir). @@ -27,8 +27,7 @@ use thiserror::Error; /// eval "$(envdir-helper)" /// /// The generated output is compatible with sh, and thus with bash and zsh. -#[derive(Clap)] -#[clap(version=env!("CARGO_PKG_VERSION"))] +#[derive(Parser)] struct Opts { /// Directory to read environment variables from [default: ~/.envdir] envdir: Option<PathBuf>, @@ -112,13 +111,13 @@ fn detect_env_script(path: &Path) -> Result<ExportScript, PathStringError> { fn no_export_env_script(name: &str, content: &str) -> String { let name = shlex::quote(name); - let content= shlex::quote(content); + let content = shlex::quote(content); format!("{}={}", name, content) } fn export_env_script(name: &str, content: &str) -> String { let name = shlex::quote(name); - let content= shlex::quote(content); + let content = shlex::quote(content); format!("{}={}; export {}", name, content, name) } @@ -132,9 +131,9 @@ enum PathStringError { fn path_to_string(path: &Path) -> Result<&str, PathStringError> { use PathStringError::*; - let file_name = path.file_name() - .ok_or_else(|| NamelessPath(path.into()))?; - file_name.to_str() + let file_name = path.file_name().ok_or_else(|| NamelessPath(path.into()))?; + file_name + .to_str() .ok_or_else(|| NonUnicodePath(file_name.into())) } @@ -145,7 +144,7 @@ enum EnvContentError { #[error("program produced non-UTF-8 output: {0}")] NonUnicodeOutput(#[from] FromUtf8Error), #[error("program {0:?} exited with status: {1}")] - ProgramFailed(PathBuf, ExitStatus) + ProgramFailed(PathBuf, ExitStatus), } fn env_content(path: &Path) -> Result<String, EnvContentError> { @@ -158,7 +157,7 @@ fn env_content(path: &Path) -> Result<String, EnvContentError> { if content.ends_with("\n") { content.pop(); } - + Ok(content) } @@ -181,7 +180,7 @@ fn env_program_content(path: &Path) -> Result<String, EnvContentError> { .stdout(Stdio::piped()) .stderr(Stdio::inherit()) .output()?; - + if output.status.success() { let output = String::from_utf8(output.stdout)?; Ok(output) |
