@@ -206,29 +206,42 @@ gulp.task('build', [
206
206
] ) ;
207
207
208
208
// 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 ) ;
218
213
proc . exec ( cmd , done ) ;
219
214
} else {
220
215
done ( ) ;
221
216
}
222
217
}
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 ) ;
229
233
} else {
230
- return done ( ) ;
234
+ done ( new Error ( "process.env.XCODE_SIGNING_IDENTITY not specified" ) ) ;
231
235
}
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
+ } ) ;
232
245
} ) ;
233
246
234
247
// gulp.task('get mongo', function(cb) {
0 commit comments