@@ -206,29 +206,42 @@ gulp.task('build', [
206206] ) ;
207207
208208// https://github.com/atom/electron-starter/blob/master/build/tasks/codesign-task.coffee
209- function unlockKeychain ( done ) {
210- var cmd = util . format ( 'security unlock-keychain -p %s' ,
211- process . env . XCODE_KEYCHAIN_PASSWORD , process . env . XCODE_KEYCHAIN ) ;
212- proc . exec ( cmd , done ) ;
213- }
214- function signApp ( done ) {
215- if ( PLATFORM === 'darwin' ) {
216- var cmd = util . format ( 'codesign --deep --force --verbose --sign %s %s' ,
217- process . env . XCODE_SIGNING_IDENTITY , APP ) ;
209+ function unlockKeychainDarwin ( done ) {
210+ if ( process . env . XCODE_KEYCHAIN_PASSWORD ) {
211+ var cmd = util . format ( 'security unlock-keychain -p %s' ,
212+ process . env . XCODE_KEYCHAIN_PASSWORD , process . env . XCODE_KEYCHAIN ) ;
218213 proc . exec ( cmd , done ) ;
219214 } else {
220215 done ( ) ;
221216 }
222217}
223- gulp . task ( 'sign' , function ( done ) {
224- if ( process . platform ( ) === 'darwin' && process . env . XCODE_KEYCHAIN ) {
225- unlockKeychain ( function ( err ) {
226- if ( err ) return done ( err ) ;
227- signApp ( done ) ;
228- } ) ;
218+ function signAppDarwin ( done ) {
219+ if ( process . env . XCODE_SIGNING_IDENTITY ) {
220+ // var cmd = util.format('codesign --deep --force --verbose --sign %s %s',
221+ // process.env.XCODE_SIGNING_IDENTITY, APP);
222+
223+ // Use a shell script until we rewrite it in gulp
224+ var logData = function ( data ) {
225+ console . log ( ( '' + data ) . trim ( ) ) ;
226+ } ;
227+
228+ var script = proc . spawn ( "./darwin-sign-app.sh" ,
229+ [ process . env . XCODE_SIGNING_IDENTITY , APP ] ) ;
230+ script . stdout . on ( 'data' , logData ) ;
231+ script . stderr . on ( 'data' , logData ) ;
232+ script . on ( 'close' , done ) ;
229233 } else {
230- return done ( ) ;
234+ done ( new Error ( "process.env.XCODE_SIGNING_IDENTITY not specified" ) ) ;
231235 }
236+ }
237+ gulp . task ( 'sign' , function ( done ) {
238+ if ( PLATFORM !== 'darwin' ) {
239+ done ( new Error ( "sign only implemented for OS X" ) ) ;
240+ }
241+ unlockKeychainDarwin ( function ( err ) {
242+ if ( err ) return done ( err ) ;
243+ signAppDarwin ( done ) ;
244+ } ) ;
232245} ) ;
233246
234247// gulp.task('get mongo', function(cb) {
0 commit comments