Skip to content

Commit 35a2d2e

Browse files
authored
Merge pull request #56 from belovdv/err-extend-type-fix
Error type for from_env_ext function: update
2 parents 60e5a33 + 336b257 commit 35a2d2e

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/error.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ pub struct FromEnvError {
1515
pub enum FromEnvErrorKind {
1616
/// There is no environment variable that describes jobserver to inherit.
1717
NoEnvVar,
18+
/// There is no jobserver in the environment variable.
19+
/// Variables associated with Make can be used for passing data other than jobserver info.
20+
NoJobserver,
1821
/// Cannot parse jobserver environment variable value, incorrect format.
1922
CannotParse,
2023
/// Cannot open path or name from the jobserver environment variable value.
@@ -32,6 +35,7 @@ impl FromEnvError {
3235
pub fn kind(&self) -> FromEnvErrorKind {
3336
match self.inner {
3437
FromEnvErrorInner::NoEnvVar => FromEnvErrorKind::NoEnvVar,
38+
FromEnvErrorInner::NoJobserver => FromEnvErrorKind::NoJobserver,
3539
FromEnvErrorInner::CannotParse(_) => FromEnvErrorKind::CannotParse,
3640
FromEnvErrorInner::CannotOpenPath(..) => FromEnvErrorKind::CannotOpenPath,
3741
FromEnvErrorInner::CannotOpenFd(..) => FromEnvErrorKind::CannotOpenFd,
@@ -45,6 +49,7 @@ impl std::fmt::Display for FromEnvError {
4549
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4650
match &self.inner {
4751
FromEnvErrorInner::NoEnvVar => write!(f, "there is no environment variable that describes jobserver to inherit"),
52+
FromEnvErrorInner::NoJobserver => write!(f, "there is no `--jobserver-fds=` or `--jobserver-auth=` in the environment variable"),
4853
FromEnvErrorInner::CannotParse(s) => write!(f, "cannot parse jobserver environment variable value: {s}"),
4954
FromEnvErrorInner::CannotOpenPath(s, err) => write!(f, "cannot open path or name {s} from the jobserver environment variable value: {err}"),
5055
FromEnvErrorInner::CannotOpenFd(fd, err) => write!(f, "cannot open file descriptor {fd} from the jobserver environment variable value: {err}"),
@@ -70,6 +75,7 @@ impl std::error::Error for FromEnvError {
7075
#[derive(Debug)]
7176
pub(crate) enum FromEnvErrorInner {
7277
NoEnvVar,
78+
NoJobserver,
7379
CannotParse(String),
7480
CannotOpenPath(String, std::io::Error),
7581
CannotOpenFd(RawFd, std::io::Error),

src/lib.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -285,12 +285,7 @@ impl Client {
285285
.find_map(|pos| pos)
286286
{
287287
Some((arg, pos)) => (arg, pos),
288-
None => {
289-
let err = FromEnvErrorInner::CannotParse(
290-
"expected `--jobserver-fds=` or `--jobserver-auth=`".to_string(),
291-
);
292-
return FromEnv::new_err(err, env, var_os);
293-
}
288+
None => return FromEnv::new_err(FromEnvErrorInner::NoJobserver, env, var_os),
294289
};
295290

296291
let s = var[pos + arg.len()..].split(' ').next().unwrap();

0 commit comments

Comments
 (0)