Skip to content

Commit

Permalink
Merge pull request #808 from epage/no
Browse files Browse the repository at this point in the history
fix(cli): Improve error when args aren't present
  • Loading branch information
epage authored Aug 21, 2023
2 parents f8d11b3 + 8be21b2 commit c8189bf
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
15 changes: 14 additions & 1 deletion crates/typos-cli/src/bin/typos-cli/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,12 @@ fn run_type_list(args: &args::Args) -> proc_exit::ExitResult {
}

fn run_checks(args: &args::Args) -> proc_exit::ExitResult {
let global_cwd = std::env::current_dir().to_sysexits()?;
let global_cwd = std::env::current_dir()
.map_err(|err| {
let kind = err.kind();
std::io::Error::new(kind, "no current working directory".to_owned())
})
.to_sysexits()?;

let storage = typos_cli::policy::ConfigStorage::new();
let mut engine = typos_cli::policy::ConfigEngine::new(&storage);
Expand All @@ -162,11 +167,19 @@ fn run_checks(args: &args::Args) -> proc_exit::ExitResult {
} else if path.is_file() {
let mut cwd = path
.canonicalize()
.map_err(|err| {
let kind = err.kind();
std::io::Error::new(kind, format!("argument `{}` is not found", path.display()))
})
.with_code(proc_exit::sysexits::USAGE_ERR)?;
cwd.pop();
cwd
} else {
path.canonicalize()
.map_err(|err| {
let kind = err.kind();
std::io::Error::new(kind, format!("argument `{}` is not found", path.display()))
})
.with_code(proc_exit::sysexits::USAGE_ERR)?
};

Expand Down
Empty file.
8 changes: 8 additions & 0 deletions crates/typos-cli/tests/cmd/missing-arg.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
bin.name = "typos"
args = "foo"
status.code = 64
stdin = ""
# stdout doesn't have stable order
stderr = """
argument `foo` is not found
"""

0 comments on commit c8189bf

Please sign in to comment.