mirror of
https://github.com/gitui-org/gitui
synced 2026-05-24 09:28:21 +00:00
Add --logfile (#2539)
Co-authored-by: extrawurst <776816+extrawurst@users.noreply.github.com>
This commit is contained in:
parent
1f3bd0ff70
commit
4ccdeed3a2
2 changed files with 23 additions and 9 deletions
|
|
@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* new command-line option to override the default log file path (`--logfile`) [[@acuteenvy](https://github.com/acuteenvy)] ([#2539](https://github.com/gitui-org/gitui/pull/2539))
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* improve syntax highlighting file detection [[@acuteenvy](https://github.com/acuteenvy)] ([#2524](https://github.com/extrawurst/gitui/pull/2524))
|
* improve syntax highlighting file detection [[@acuteenvy](https://github.com/acuteenvy)] ([#2524](https://github.com/extrawurst/gitui/pull/2524))
|
||||||
* After commit: jump back to unstaged area [[@tommady](https://github.com/tommady)] ([#2476](https://github.com/extrawurst/gitui/issues/2476))
|
* After commit: jump back to unstaged area [[@tommady](https://github.com/tommady)] ([#2476](https://github.com/extrawurst/gitui/issues/2476))
|
||||||
|
|
|
||||||
29
src/args.rs
29
src/args.rs
|
|
@ -2,8 +2,8 @@ use crate::bug_report;
|
||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Result};
|
||||||
use asyncgit::sync::RepoPath;
|
use asyncgit::sync::RepoPath;
|
||||||
use clap::{
|
use clap::{
|
||||||
crate_authors, crate_description, crate_name, Arg,
|
builder::ArgPredicate, crate_authors, crate_description,
|
||||||
Command as ClapApp,
|
crate_name, Arg, Command as ClapApp,
|
||||||
};
|
};
|
||||||
use simplelog::{Config, LevelFilter, WriteLogger};
|
use simplelog::{Config, LevelFilter, WriteLogger};
|
||||||
use std::{
|
use std::{
|
||||||
|
|
@ -28,7 +28,8 @@ pub fn process_cmdline() -> Result<CliArgs> {
|
||||||
std::process::exit(0);
|
std::process::exit(0);
|
||||||
}
|
}
|
||||||
if arg_matches.get_flag("logging") {
|
if arg_matches.get_flag("logging") {
|
||||||
setup_logging()?;
|
let logfile = arg_matches.get_one::<String>("logfile");
|
||||||
|
setup_logging(logfile.map(PathBuf::from))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
let workdir =
|
let workdir =
|
||||||
|
|
@ -87,11 +88,16 @@ fn app() -> ClapApp {
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new("logging")
|
Arg::new("logging")
|
||||||
.help("Stores logging output into a cache directory")
|
.help("Store logging output into a file (in the cache directory by default)")
|
||||||
.short('l')
|
.short('l')
|
||||||
.long("logging")
|
.long("logging")
|
||||||
.num_args(0),
|
.default_value_if("logfile", ArgPredicate::IsPresent, "true")
|
||||||
|
.action(clap::ArgAction::SetTrue),
|
||||||
)
|
)
|
||||||
|
.arg(Arg::new("logfile")
|
||||||
|
.help("Store logging output into the specified file (implies --logging)")
|
||||||
|
.long("logfile")
|
||||||
|
.value_name("LOG_FILE"))
|
||||||
.arg(
|
.arg(
|
||||||
Arg::new("watcher")
|
Arg::new("watcher")
|
||||||
.help("Use notify-based file system watcher instead of tick-based update. This is more performant, but can cause issues on some platforms. See https://github.com/extrawurst/gitui/blob/master/FAQ.md#watcher for details.")
|
.help("Use notify-based file system watcher instead of tick-based update. This is more performant, but can cause issues on some platforms. See https://github.com/extrawurst/gitui/blob/master/FAQ.md#watcher for details.")
|
||||||
|
|
@ -122,11 +128,16 @@ fn app() -> ClapApp {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_logging() -> Result<()> {
|
fn setup_logging(path_override: Option<PathBuf>) -> Result<()> {
|
||||||
let mut path = get_app_cache_path()?;
|
let path = if let Some(path) = path_override {
|
||||||
path.push("gitui.log");
|
path
|
||||||
|
} else {
|
||||||
|
let mut path = get_app_cache_path()?;
|
||||||
|
path.push("gitui.log");
|
||||||
|
path
|
||||||
|
};
|
||||||
|
|
||||||
println!("Logging enabled. log written to: {path:?}");
|
println!("Logging enabled. Log written to: {path:?}");
|
||||||
|
|
||||||
WriteLogger::init(
|
WriteLogger::init(
|
||||||
LevelFilter::Trace,
|
LevelFilter::Trace,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue