@@ -13,6 +13,7 @@ const exec = require( 'child_process' ).exec;
13
13
const execSync = require ( 'child_process' ) . execSync ;
14
14
const spawn = require ( 'child_process' ) . spawn ;
15
15
const inquirer = require ( 'inquirer' ) ;
16
+ const keytar = require ( 'keytar' )
16
17
const url = require ( 'url' ) ;
17
18
const fs = require ( 'fs' ) ;
18
19
const trac = require ( '../lib/trac.js' ) ;
@@ -335,17 +336,27 @@ module.exports = function( grunt ) {
335
336
) ;
336
337
} ) ;
337
338
} ;
338
- if ( process . env . WPORG_USERNAME && process . env . WPORG_PASSWORD ) {
339
- uploadPatchWithCredentials ( process . env . WPORG_USERNAME , process . env . WPORG_PASSWORD ) ;
340
- } else {
341
- inquirer . prompt (
342
- [
343
- { type : 'input' , name : 'username' , message : 'Enter your WordPress.org username' } ,
344
- { type : 'password' , name : 'password' , message : 'Enter your WordPress.org password' } ,
345
- ] ) . then ( ( answers ) => {
346
- uploadPatchWithCredentials ( answers . username , answers . password ) ;
339
+ const getCredentials = keytar . findCredentials ( 'wporg_patch' ) ;
340
+ getCredentials . then ( savedCredentials => {
341
+ if ( savedCredentials . length > 0 ) {
342
+ uploadPatchWithCredentials ( savedCredentials [ 0 ] . account , savedCredentials [ 0 ] . password ) ;
347
343
}
348
- ) ;
349
- }
344
+ else if ( process . env . WPORG_USERNAME && process . env . WPORG_PASSWORD ) {
345
+ uploadPatchWithCredentials ( process . env . WPORG_USERNAME , process . env . WPORG_PASSWORD ) ;
346
+ } else {
347
+ inquirer . prompt (
348
+ [
349
+ { type : 'input' , name : 'username' , message : 'Enter your WordPress.org username' } ,
350
+ { type : 'password' , name : 'password' , message : 'Enter your WordPress.org password' } ,
351
+ { type : 'confirm' , name : 'saveCredentials' , message : 'Save your credentials?' } ,
352
+ ] ) . then ( ( answers ) => {
353
+ uploadPatchWithCredentials ( answers . username , answers . password ) ;
354
+ if ( answers . saveCredentials ) {
355
+ keytar . setPassword ( 'wporg_patch' , answers . username , answers . password ) ;
356
+ }
357
+ }
358
+ ) ;
359
+ }
360
+ } ) ;
350
361
} ) ;
351
362
} ;
0 commit comments