summaryrefslogtreecommitdiffstats
path: root/src/args.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/args.rs')
-rw-r--r--src/args.rs164
1 files changed, 82 insertions, 82 deletions
diff --git a/src/args.rs b/src/args.rs
index 57e5be83..67b2e294 100644
--- a/src/args.rs
+++ b/src/args.rs
@@ -1,109 +1,109 @@
use crate::bug_report;
use anyhow::{anyhow, Result};
use clap::{
- crate_authors, crate_description, crate_name, crate_version,
- App as ClapApp, Arg,
+ crate_authors, crate_description, crate_name, crate_version,
+ App as ClapApp, Arg,
};
use simplelog::{Config, LevelFilter, WriteLogger};
use std::{
- env,
- fs::{self, File},
- path::PathBuf,
+ env,
+ fs::{self, File},
+ path::PathBuf,
};
pub struct CliArgs {
- pub theme: PathBuf,
+ pub theme: PathBuf,
}
pub fn process_cmdline() -> Result<CliArgs> {
- let app = ClapApp::new(crate_name!())
- .author(crate_authors!())
- .version(crate_version!())
- .about(crate_description!())
- .arg(
- Arg::with_name("theme")
- .help("Set the color theme (defaults to theme.ron)")
- .short("t")
- .long("theme")
- .value_name("THEME")
- .takes_value(true),
- )
- .arg(
- Arg::with_name("logging")
- .help("Stores logging output into a cache directory")
- .short("l")
- .long("logging"),
- )
- .arg(
- Arg::with_name("bugreport")
- .help("Generate a bug report")
- .long("bugreport"),
- )
- .arg(
- Arg::with_name("directory")
- .help("Set the working directory")
- .short("d")
- .long("directory")
- .takes_value(true),
- );
+ let app = ClapApp::new(crate_name!())
+ .author(crate_authors!())
+ .version(crate_version!())
+ .about(crate_description!())
+ .arg(
+ Arg::with_name("theme")
+ .help("Set the color theme (defaults to theme.ron)")
+ .short("t")
+ .long("theme")
+ .value_name("THEME")
+ .takes_value(true),
+ )
+ .arg(
+ Arg::with_name("logging")
+ .help("Stores logging output into a cache directory")
+ .short("l")
+ .long("logging"),
+ )
+ .arg(
+ Arg::with_name("bugreport")
+ .help("Generate a bug report")
+ .long("bugreport"),
+ )
+ .arg(
+ Arg::with_name("directory")
+ .help("Set the working directory")
+ .short("d")
+ .long("directory")
+ .takes_value(true),
+ );
- let arg_matches = app.get_matches();
- if arg_matches.is_present("bugreport") {
- bug_report::generate_bugreport();
- std::process::exit(0);
- }
- if arg_matches.is_present("logging") {
- setup_logging()?;
- }
- if arg_matches.is_present("directory") {
- let directory =
- arg_matches.value_of("directory").unwrap_or(".");
- env::set_current_dir(directory)?;
- }
- let arg_theme =
- arg_matches.value_of("theme").unwrap_or("theme.ron");
- if get_app_config_path()?.join(arg_theme).is_file() {
- Ok(CliArgs {
- theme: get_app_config_path()?.join(arg_theme),
- })
- } else {
- Ok(CliArgs {
- theme: get_app_config_path()?.join("theme.ron"),
- })
- }
+ let arg_matches = app.get_matches();
+ if arg_matches.is_present("bugreport") {
+ bug_report::generate_bugreport();
+ std::process::exit(0);
+ }
+ if arg_matches.is_present("logging") {
+ setup_logging()?;
+ }
+ if arg_matches.is_present("directory") {
+ let directory =
+ arg_matches.value_of("directory").unwrap_or(".");
+ env::set_current_dir(directory)?;
+ }
+ let arg_theme =
+ arg_matches.value_of("theme").unwrap_or("theme.ron");
+ if get_app_config_path()?.join(arg_theme).is_file() {
+ Ok(CliArgs {
+ theme: get_app_config_path()?.join(arg_theme),
+ })
+ } else {
+ Ok(CliArgs {
+ theme: get_app_config_path()?.join("theme.ron"),
+ })
+ }
}
fn setup_logging() -> Result<()> {
- let mut path = get_app_cache_path()?;
- path.push("gitui.log");
+ let mut path = get_app_cache_path()?;
+ path.push("gitui.log");
- let _ = WriteLogger::init(
- LevelFilter::Trace,
- Config::default(),
- File::create(path)?,
- );
+ let _ = WriteLogger::init(
+ LevelFilter::Trace,
+ Config::default(),
+ File::create(path)?,
+ );
- Ok(())
+ Ok(())
}
fn get_app_cache_path() -> Result<PathBuf> {
- let mut path = dirs_next::cache_dir()
- .ok_or_else(|| anyhow!("failed to find os cache dir."))?;
+ let mut path = dirs_next::cache_dir()
+ .ok_or_else(|| anyhow!("failed to find os cache dir."))?;
- path.push("gitui");
- fs::create_dir_all(&path)?;
- Ok(path)
+ path.push("gitui");
+ fs::create_dir_all(&path)?;
+ Ok(path)
}
pub fn get_app_config_path() -> Result<PathBuf> {
- let mut path = if cfg!(target_os = "macos") {
- dirs_next::home_dir().map(|h| h.join(".config"))
- } else {
- dirs_next::config_dir()
- }
- .ok_or_else(|| anyhow!("failed to find os config dir."))?;
+ let mut path = if cfg!(target_os = "macos") {
+ dirs_next::home_dir().map(|h| h.join(".config"))
+ } else {
+ dirs_next::config_dir()
+ }
+ .ok_or_else(|| anyhow!("failed to find os config dir."))?;
- path.push("gitui");
- fs::create_dir_all(&path)?;
- Ok(path)
+ path.push("gitui");
+ fs::create_dir_all(&path)?;
+ Ok(path)
}