don't make target required

main
Brian Hicks 2021-09-14 06:07:17 -05:00
parent f10f9ab426
commit 1c23fc9361
1 changed files with 3 additions and 5 deletions

View File

@ -1,5 +1,5 @@
use clap::{crate_authors, crate_version, App, Arg, ArgGroup};
use color_eyre::eyre::{ContextCompat, Result, WrapErr};
use color_eyre::eyre::{Result, WrapErr};
use rayon::prelude::*;
use std::io::{self, stdin, stdout, BufRead, BufWriter, Write};
use strsim::{jaro_winkler, levenshtein};
@ -26,7 +26,7 @@ fn try_main() -> Result<()> {
.long_about(
"works like `sort`, but sorts according to edit distance instead of alphanumerically.\n\nYou can choose the edit distance algorithm we use for this! If you don't know which one you need, Levenshtein is a good default. Try Jaro-Winkler if you care about your strings having similar prefixes (for example files in a project.)"
)
.arg(Arg::new("target").about("sort according to distance from this string").required(true))
.arg(Arg::new("target").about("sort according to distance from this string"))
.arg(
Arg::new("levenshtein")
.long("levenshtein")
@ -50,9 +50,7 @@ fn try_main() -> Result<()> {
)
.get_matches();
let target = matches
.value_of("target")
.context("could not retrieve target from args. Internal error; please report!")?;
let target = matches.value_of("target").unwrap_or("");
let lines: Vec<String> = stdin()
.lock()