diff --git a/src/clap_app.rs b/src/clap_app.rs index fd917ee5..9366ff31 100644 --- a/src/clap_app.rs +++ b/src/clap_app.rs @@ -265,6 +265,14 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> { .hidden(true) .help("Do not use the configuration file"), ) + .arg( + Arg::with_name("config-file") + .long("config-file") + .conflicts_with("list-languages") + .conflicts_with("list-themes") + .hidden(true) + .help("Show path to the configuration file"), + ) .subcommand( SubCommand::with_name("cache") .about("Modify the syntax-definition and theme cache") diff --git a/src/config.rs b/src/config.rs index 4ee40afd..0c9b33e2 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,16 +1,20 @@ use std::env; use std::ffi::OsString; use std::fs; +use std::path::PathBuf; use shell_words; use dirs::PROJECT_DIRS; use util::transpose; +pub fn config_file() -> PathBuf { + PROJECT_DIRS.config_dir().join("config") +} + pub fn get_args_from_config_file() -> Result, shell_words::ParseError> { - let config_file = PROJECT_DIRS.config_dir().join("config"); Ok(transpose( - fs::read_to_string(config_file) + fs::read_to_string(config_file()) .ok() .map(|content| get_args_from_str(&content)), )? diff --git a/src/main.rs b/src/main.rs index a0317283..e592c1d5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -50,6 +50,7 @@ use ansi_term::Style; use app::{App, Config}; use assets::{clear_assets, config_dir, HighlightingAssets}; +use config::config_file; use controller::Controller; use inputfile::InputFile; use style::{OutputComponent, OutputComponents}; @@ -224,6 +225,10 @@ fn run() -> Result { } else if app.matches.is_present("list-themes") { list_themes(&config)?; + Ok(true) + } else if app.matches.is_present("config-file") { + println!("{}", config_file().to_string_lossy()); + Ok(true) } else { run_controller(&config)