summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2020-06-10 16:28:52 -0400
committerDan Davison <dandavison7@gmail.com>2020-06-10 17:25:44 -0400
commit2b8869cf16dd15469753849fae2fb3c26e82bbcf (patch)
tree6b242891e982410fcf5504e5891e0611b71abf60 /src/main.rs
parent39b4d39d7f2b3c07e316ea8640640602d2115d14 (diff)
Refactor: straighten out command line arguments processing
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs
index 93cfdb54..8c48cddb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -29,7 +29,7 @@ use std::process;
use ansi_term::{self, Color};
use atty;
use bytelines::ByteLinesReader;
-use structopt::{clap, StructOpt};
+use structopt::StructOpt;
use crate::bat::assets::{list_languages, HighlightingAssets};
use crate::bat::output::{OutputType, PagingMode};
@@ -46,9 +46,6 @@ mod errors {
}
fn main() -> std::io::Result<()> {
- let arg_matches = cli::Opt::clap().get_matches();
- let opt = cli::Opt::from_clap(&arg_matches);
-
let mut git_config = match std::env::current_dir() {
Ok(dir) => match git2::Repository::discover(dir) {
Ok(repo) => match repo.config() {
@@ -60,7 +57,8 @@ fn main() -> std::io::Result<()> {
Err(_) => None,
};
- let config = cli::process_command_line_arguments(opt, arg_matches, &mut git_config);
+ let config =
+ cli::process_command_line_arguments(cli::Opt::clap().get_matches(), &mut git_config);
if atty::is(atty::Stream::Stdin) {
return diff(
@@ -193,16 +191,15 @@ index f38589a..0f1bb83 100644
}
writeln!(stdout, "\n\nTheme: {}\n", style.paint(syntax_theme))?;
- let config = cli::process_command_line_arguments(
- cli::Opt {
- syntax_theme: Some(syntax_theme.to_string()),
- file_style: "omit".to_string(),
- hunk_header_style: "omit".to_string(),
- ..opt.clone()
- },
- clap::ArgMatches::new(),
- &mut None,
- );
+ let arg_matches = cli::Opt::clap().get_matches_from(vec![
+ "--syntax-theme",
+ syntax_theme,
+ "--file-style",
+ "omit",
+ "--hunk-header-style",
+ "omit",
+ ]);
+ let config = cli::process_command_line_arguments(arg_matches, &mut None);
let mut output_type =
OutputType::from_mode(PagingMode::QuitIfOneScreen, None, &config).unwrap();
let mut writer = output_type.handle().unwrap();