Forbid --output=file without a path separator

This commit is contained in:
Tavian Barnes authored and David Peter committed 2022-05-17 22:30:45 +02:00
1 parent ecee9df575
commit efdf735723
2 files changed
+9 -1

No files matched your search

+2
View File
@@ -49,4 +49,6 @@ pub enum OptionsError<'a> {
EmptyShell,
#[error("Failed to parse '--shell <command>' expression as command line: {0}")]
ShellParseError(shell_words::ParseError),
#[error("Unknown output policy '{0}'. Use ./{0} to output to a file named {0}.")]
UnknownOutputPolicy(String),
}
+7 -1
View File
@@ -275,7 +275,13 @@ impl Options {
"null" => CommandOutputPolicy::Discard,
"pipe" => CommandOutputPolicy::Pipe,
"inherit" => CommandOutputPolicy::Forward,
path => CommandOutputPolicy::File(path.into()),
arg => {
let path = PathBuf::from(arg);
if path.components().count() <= 1 {
return Err(OptionsError::UnknownOutputPolicy(arg.to_string()));
}
CommandOutputPolicy::File(path)
}
}
} else {
CommandOutputPolicy::Discard