@@ -155,9 +155,9 @@ impl SignBuilder {
155
155
String :: from ( "x509" ) ,
156
156
) ) ,
157
157
"ssh" => {
158
- let program = config
159
- . get_string ( "gpg.ssh.program" )
160
- . unwrap_or_else ( |_| "ssh-keygen" . to_string ( ) ) ;
158
+ let program = config
159
+ . get_string ( "gpg.ssh.program" )
160
+ . unwrap_or_else ( |_| "ssh-keygen" . to_string ( ) ) ;
161
161
162
162
let signing_key = config
163
163
. get_string ( "user.signingKey" )
@@ -166,7 +166,11 @@ impl SignBuilder {
166
166
err. to_string ( ) ,
167
167
)
168
168
} )
169
- . and_then ( |signing_key| { SignBuilder :: signing_key_into_path ( & signing_key) } ) ?;
169
+ . and_then ( |signing_key| {
170
+ SignBuilder :: signing_key_into_path (
171
+ & signing_key,
172
+ )
173
+ } ) ?;
170
174
171
175
Ok ( Box :: new ( SSHSign {
172
176
program,
@@ -177,20 +181,22 @@ impl SignBuilder {
177
181
}
178
182
}
179
183
180
- fn signing_key_into_path ( signing_key : & str ) -> Result < PathBuf , SignBuilderError > {
181
- let key_path = PathBuf :: from ( signing_key) ;
182
- if key_path. is_file ( ) {
183
- Ok ( key_path)
184
- } else {
185
- if signing_key. starts_with ( "ssh-" ) {
186
- Ok ( key_path) //TODO: write key to temp file
187
- } else {
188
- Err ( SignBuilderError :: SSHSigningKey ( String :: from (
184
+ fn signing_key_into_path (
185
+ signing_key : & str ,
186
+ ) -> Result < PathBuf , SignBuilderError > {
187
+ let key_path = PathBuf :: from ( signing_key) ;
188
+ if key_path. is_file ( ) {
189
+ Ok ( key_path)
190
+ } else {
191
+ if signing_key. starts_with ( "ssh-" ) {
192
+ Ok ( key_path) //TODO: write key to temp file
193
+ } else {
194
+ Err ( SignBuilderError :: SSHSigningKey ( String :: from (
189
195
"ssh key could not be resolve. Either the key is not a file or the key is not a valid public ssh key" ,
190
196
) ) )
191
- }
192
- }
193
- }
197
+ }
198
+ }
199
+ }
194
200
}
195
201
196
202
/// Sign commit data using `OpenPGP`
@@ -278,7 +284,7 @@ impl Sign for SSHSign {
278
284
& self ,
279
285
commit : & [ u8 ] ,
280
286
) -> Result < ( String , Option < String > ) , SignError > {
281
- use std:: io:: Write ;
287
+ use std:: io:: Write ;
282
288
use std:: process:: { Command , Stdio } ;
283
289
284
290
let mut cmd = Command :: new ( & self . program ) ;
@@ -295,22 +301,22 @@ impl Sign for SSHSign {
295
301
log:: trace!( "signing command: {cmd:?}" ) ;
296
302
297
303
let mut child = cmd
298
- . spawn ( )
304
+ . spawn ( )
299
305
. map_err ( |e| SignError :: Spawn ( e. to_string ( ) ) ) ?;
300
306
301
307
let mut stdin = child. stdin . take ( ) . ok_or ( SignError :: Stdin ) ?;
302
308
303
309
stdin
304
- . write_all ( commit)
310
+ . write_all ( commit)
305
311
. map_err ( |e| SignError :: WriteBuffer ( e. to_string ( ) ) ) ?;
306
312
drop ( stdin) ;
307
313
308
314
let output = child
309
- . wait_with_output ( )
315
+ . wait_with_output ( )
310
316
. map_err ( |e| SignError :: Output ( e. to_string ( ) ) ) ?;
311
317
312
318
if !output. status . success ( ) {
313
- return Err ( SignError :: Shellout ( format ! (
319
+ return Err ( SignError :: Shellout ( format ! (
314
320
"failed to sign data, program '{}' exited non-zero: {}" ,
315
321
& self . program,
316
322
std:: str :: from_utf8( & output. stderr)
@@ -319,7 +325,7 @@ impl Sign for SSHSign {
319
325
}
320
326
321
327
let signed_commit = std:: str:: from_utf8 ( & output. stdout )
322
- . map_err ( |e| SignError :: Shellout ( e. to_string ( ) ) ) ?;
328
+ . map_err ( |e| SignError :: Shellout ( e. to_string ( ) ) ) ?;
323
329
324
330
Ok ( ( signed_commit. to_string ( ) , None ) )
325
331
}
0 commit comments