@@ -36,17 +36,15 @@ impl<'a> Credential for CredentialProcessCredential {
36
36
cmd. stdin ( Stdio :: piped ( ) ) ;
37
37
cmd. arg ( "--cargo-plugin" ) ;
38
38
log:: debug!( "credential-process: {cmd:?}" ) ;
39
- let mut child = cmd. spawn ( ) . with_context ( || {
40
- format ! (
41
- "failed to spawn credential process `{}`" ,
42
- self . path. display( )
43
- )
44
- } ) ?;
39
+ let mut child = cmd. spawn ( ) . context ( "failed to spawn credential process" ) ?;
45
40
let mut output_from_child = BufReader :: new ( child. stdout . take ( ) . unwrap ( ) ) ;
46
41
let mut input_to_child = child. stdin . take ( ) . unwrap ( ) ;
47
42
let mut buffer = String :: new ( ) ;
48
- output_from_child. read_line ( & mut buffer) ?;
49
- let credential_hello: CredentialHello = serde_json:: from_str ( & buffer) ?;
43
+ output_from_child
44
+ . read_line ( & mut buffer)
45
+ . context ( "failed to read hello from credential provider" ) ?;
46
+ let credential_hello: CredentialHello =
47
+ serde_json:: from_str ( & buffer) . context ( "failed to deserialize hello" ) ?;
50
48
log:: debug!( "credential-process > {credential_hello:?}" ) ;
51
49
52
50
let req = CredentialRequest {
@@ -55,17 +53,19 @@ impl<'a> Credential for CredentialProcessCredential {
55
53
registry : registry. clone ( ) ,
56
54
args : args. to_vec ( ) ,
57
55
} ;
58
- let request = serde_json:: to_string ( & req) ?;
56
+ let request = serde_json:: to_string ( & req) . context ( "failed to serialize request" ) ?;
59
57
log:: debug!( "credential-process < {req:?}" ) ;
60
- writeln ! ( input_to_child, "{request}" ) ?;
58
+ writeln ! ( input_to_child, "{request}" ) . context ( "failed to write to credential provider" ) ?;
61
59
62
60
buffer. clear ( ) ;
63
- output_from_child. read_line ( & mut buffer) ?;
61
+ output_from_child
62
+ . read_line ( & mut buffer)
63
+ . context ( "failed to read response from credential provider" ) ?;
64
64
let response: Result < CredentialResponse , cargo_credential:: Error > =
65
- serde_json:: from_str ( & buffer) ?;
65
+ serde_json:: from_str ( & buffer) . context ( "failed to deserialize response" ) ?;
66
66
log:: debug!( "credential-process > {response:?}" ) ;
67
67
drop ( input_to_child) ;
68
- let status = child. wait ( ) . expect ( "credential process never started" ) ;
68
+ let status = child. wait ( ) . context ( "credential process never started" ) ? ;
69
69
if !status. success ( ) {
70
70
return Err ( anyhow:: anyhow!(
71
71
"credential process `{}` failed with status {}`" ,
0 commit comments