Add command line parameter to specify log file (#3807)
* Add command line parameter to specify log file I had the logs of my debug helix mixed in with the logs from the production helix. Add a `--log` command line argument to redirect any logs to other files, making my debugging easier :-) * Update completion files with `--log` argument
This commit is contained in:
parent
8988c1ecc7
commit
130793dfd0
6 changed files with 17 additions and 2 deletions
|
@ -16,7 +16,7 @@ _hx() {
|
|||
COMPREPLY=($(compgen -W "$languages" -- $2))
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=($(compgen -fd -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar --vsplit --hsplit -c --config" -- $2))
|
||||
COMPREPLY=($(compgen -fd -W "-h --help --tutor -V --version -v -vv -vvv --health -g --grammar --vsplit --hsplit -c --config --log" -- $2))
|
||||
;;
|
||||
esac
|
||||
} && complete -F _hx hx
|
||||
|
|
|
@ -36,6 +36,11 @@ set edit:completion:arg-completer[hx] = {|@args|
|
|||
edit:complete-filename $args[-1] | each { |v| put $v[stem] }
|
||||
return
|
||||
}
|
||||
# When we have --log, we need a file
|
||||
if (has-values "log" $args[-2]) {
|
||||
edit:complete-filename $args[-1] | each { |v| put $v[stem] }
|
||||
return
|
||||
}
|
||||
}
|
||||
edit:complete-filename $args[-1] | each { |v| put $v[stem]}
|
||||
$candidate "--help" "(Prints help information)"
|
||||
|
@ -46,4 +51,5 @@ set edit:completion:arg-completer[hx] = {|@args|
|
|||
$candidate "--vsplit" "(Splits all given files vertically)"
|
||||
$candidate "--hsplit" "(Splits all given files horizontally)"
|
||||
$candidate "--config" "(Specifies a file to use for configuration)"
|
||||
}
|
||||
$candidate "--log" "(Specifies a file to write log data into)"
|
||||
}
|
||||
|
|
|
@ -12,3 +12,4 @@ complete -c hx -s V -l version -d "Prints version information"
|
|||
complete -c hx -l vsplit -d "Splits all given files vertically into different windows"
|
||||
complete -c hx -l hsplit -d "Splits all given files horizontally into different windows"
|
||||
complete -c hx -s c -l config -d "Specifies a file to use for completion"
|
||||
complete -c hx -s c -l log -d "Specifies a file to write log data into"
|
||||
|
|
|
@ -18,6 +18,7 @@ _hx() {
|
|||
"--hsplit[Splits all given files horizontally into different windows]" \
|
||||
"-c[Specifies a file to use for configuration]" \
|
||||
"--config[Specifies a file to use for configuration]" \
|
||||
"--log[Specifies a file to write log data into]" \
|
||||
"*:file:_files"
|
||||
|
||||
case "$state" in
|
||||
|
|
|
@ -14,6 +14,7 @@ pub struct Args {
|
|||
pub build_grammars: bool,
|
||||
pub split: Option<Layout>,
|
||||
pub verbosity: u64,
|
||||
pub log_file: Option<PathBuf>,
|
||||
pub config_file: Option<PathBuf>,
|
||||
pub files: Vec<(PathBuf, Position)>,
|
||||
}
|
||||
|
@ -48,6 +49,10 @@ impl Args {
|
|||
Some(path) => args.config_file = Some(path.into()),
|
||||
None => anyhow::bail!("--config must specify a path to read"),
|
||||
},
|
||||
"--log" => match argv.next().as_deref() {
|
||||
Some(path) => args.log_file = Some(path.into()),
|
||||
None => anyhow::bail!("--log must specify a path to write"),
|
||||
},
|
||||
arg if arg.starts_with("--") => {
|
||||
anyhow::bail!("unexpected double dash argument: {}", arg)
|
||||
}
|
||||
|
|
|
@ -67,6 +67,7 @@ FLAGS:
|
|||
-g, --grammar {{fetch|build}} Fetches or builds tree-sitter grammars listed in languages.toml
|
||||
-c, --config <file> Specifies a file to use for configuration
|
||||
-v Increases logging verbosity each use for up to 3 times
|
||||
--log Specifies a file to use for logging
|
||||
(default file: {})
|
||||
-V, --version Prints version information
|
||||
--vsplit Splits all given files vertically into different windows
|
||||
|
@ -114,6 +115,7 @@ FLAGS:
|
|||
return Ok(0);
|
||||
}
|
||||
|
||||
let logpath = args.log_file.as_ref().cloned().unwrap_or(logpath);
|
||||
setup_logging(logpath, args.verbosity).context("failed to initialize logging")?;
|
||||
|
||||
let config_dir = helix_loader::config_dir();
|
||||
|
|
Loading…
Add table
Reference in a new issue