@@ -293,25 +293,25 @@ + (NSString *)getCodePushPath
293
293
+ (NSDictionary *)getCurrentPackage : (NSError **)error
294
294
{
295
295
NSString *packageHash = [CodePushPackage getCurrentPackageHash: error];
296
- if (*error || !packageHash) {
296
+ if (!packageHash) {
297
297
return nil ;
298
298
}
299
-
299
+
300
300
return [CodePushPackage getPackage: packageHash error: error];
301
301
}
302
302
303
303
+ (NSString *)getCurrentPackageBundlePath : (NSError **)error
304
304
{
305
305
NSString *packageFolder = [self getCurrentPackageFolderPath: error];
306
306
307
- if (*error ) {
308
- return NULL ;
307
+ if (!packageFolder ) {
308
+ return nil ;
309
309
}
310
310
311
311
NSDictionary *currentPackage = [self getCurrentPackage: error];
312
312
313
- if (*error ) {
314
- return NULL ;
313
+ if (!currentPackage ) {
314
+ return nil ;
315
315
}
316
316
317
317
NSString *relativeBundlePath = [currentPackage objectForKey: RelativeBundlePathKey];
@@ -325,7 +325,7 @@ + (NSString *)getCurrentPackageBundlePath:(NSError **)error
325
325
+ (NSString *)getCurrentPackageHash : (NSError **)error
326
326
{
327
327
NSDictionary *info = [self getCurrentPackageInfo: error];
328
- if (*error || !info) {
328
+ if (!info) {
329
329
return nil ;
330
330
}
331
331
@@ -336,14 +336,14 @@ + (NSString *)getCurrentPackageFolderPath:(NSError **)error
336
336
{
337
337
NSDictionary *info = [self getCurrentPackageInfo: error];
338
338
339
- if (*error ) {
340
- return NULL ;
339
+ if (!info ) {
340
+ return nil ;
341
341
}
342
342
343
343
NSString *packageHash = info[@" currentPackage" ];
344
344
345
345
if (!packageHash) {
346
- return NULL ;
346
+ return nil ;
347
347
}
348
348
349
349
return [self getPackageFolderPath: packageHash];
@@ -359,15 +359,15 @@ + (NSMutableDictionary *)getCurrentPackageInfo:(NSError **)error
359
359
NSString *content = [NSString stringWithContentsOfFile: statusFilePath
360
360
encoding: NSUTF8StringEncoding
361
361
error: error];
362
- if (*error ) {
362
+ if (!content ) {
363
363
return nil ;
364
364
}
365
365
366
366
NSData *data = [content dataUsingEncoding: NSUTF8StringEncoding];
367
367
NSDictionary * json = [NSJSONSerialization JSONObjectWithData: data
368
368
options: kNilOptions
369
369
error: error];
370
- if (*error ) {
370
+ if (!json ) {
371
371
return nil ;
372
372
}
373
373
@@ -392,8 +392,7 @@ + (NSDictionary *)getPackage:(NSString *)packageHash
392
392
NSString *updateMetadataString = [NSString stringWithContentsOfFile: updateMetadataFilePath
393
393
encoding: NSUTF8StringEncoding
394
394
error: error];
395
-
396
- if (*error) {
395
+ if (!updateMetadataString) {
397
396
return nil ;
398
397
}
399
398
@@ -411,7 +410,7 @@ + (NSString *)getPackageFolderPath:(NSString *)packageHash
411
410
+ (NSDictionary *)getPreviousPackage : (NSError **)error
412
411
{
413
412
NSString *packageHash = [self getPreviousPackageHash: error];
414
- if (*error || !packageHash) {
413
+ if (!packageHash) {
415
414
return nil ;
416
415
}
417
416
@@ -421,7 +420,7 @@ + (NSDictionary *)getPreviousPackage:(NSError **)error
421
420
+ (NSString *)getPreviousPackageHash : (NSError **)error
422
421
{
423
422
NSDictionary *info = [self getCurrentPackageInfo: error];
424
- if (*error ) {
423
+ if (!info ) {
425
424
return nil ;
426
425
}
427
426
@@ -438,25 +437,25 @@ + (NSString *)getUnzippedFolderPath
438
437
return [[self getCodePushPath ] stringByAppendingPathComponent: UnzippedFolderName];
439
438
}
440
439
441
- + (void )installPackage : (NSDictionary *)updatePackage
440
+ + (BOOL )installPackage : (NSDictionary *)updatePackage
442
441
removePendingUpdate : (BOOL )removePendingUpdate
443
442
error : (NSError **)error
444
443
{
445
444
NSString *packageHash = updatePackage[@" packageHash" ];
446
445
NSMutableDictionary *info = [self getCurrentPackageInfo: error];
447
446
448
- if (*error ) {
449
- return ;
447
+ if (!info ) {
448
+ return NO ;
450
449
}
451
450
452
451
if (packageHash && [packageHash isEqualToString: info[@" currentPackage" ]]) {
453
452
// The current package is already the one being installed, so we should no-op.
454
- return ;
453
+ return YES ;
455
454
}
456
455
457
456
if (removePendingUpdate) {
458
457
NSString *currentPackageFolderPath = [self getCurrentPackageFolderPath: error];
459
- if (!*error && currentPackageFolderPath) {
458
+ if (currentPackageFolderPath) {
460
459
// Error in deleting pending package will not cause the entire operation to fail.
461
460
NSError *deleteError;
462
461
[[NSFileManager defaultManager ] removeItemAtPath: currentPackageFolderPath
@@ -467,7 +466,7 @@ + (void)installPackage:(NSDictionary *)updatePackage
467
466
}
468
467
} else {
469
468
NSString *previousPackageHash = [self getPreviousPackageHash: error];
470
- if (!*error && previousPackageHash && ![previousPackageHash isEqualToString: packageHash]) {
469
+ if (previousPackageHash && ![previousPackageHash isEqualToString: packageHash]) {
471
470
NSString *previousPackageFolderPath = [self getPackageFolderPath: previousPackageHash];
472
471
// Error in deleting old package will not cause the entire operation to fail.
473
472
NSError *deleteError;
@@ -481,31 +480,30 @@ + (void)installPackage:(NSDictionary *)updatePackage
481
480
}
482
481
483
482
[info setValue: packageHash forKey: @" currentPackage" ];
484
-
485
- [self updateCurrentPackageInfo: info
486
- error: error];
483
+ return [self updateCurrentPackageInfo: info
484
+ error: error];
487
485
}
488
486
489
487
+ (void )rollbackPackage
490
488
{
491
489
NSError *error;
492
490
NSMutableDictionary *info = [self getCurrentPackageInfo: &error];
493
- if (error ) {
491
+ if (!info ) {
494
492
CPLog (@" Error getting current package info: %@ " , error);
495
493
return ;
496
494
}
497
495
498
- NSString *currentPackageFolderPath = [self getCurrentPackageFolderPath: &error];
499
- if (error ) {
496
+ NSString *currentPackageFolderPath = [self getCurrentPackageFolderPath: &error];
497
+ if (!currentPackageFolderPath ) {
500
498
CPLog (@" Error getting current package folder path: %@ " , error);
501
499
return ;
502
500
}
503
501
504
502
NSError *deleteError;
505
- [[NSFileManager defaultManager ] removeItemAtPath: currentPackageFolderPath
503
+ BOOL result = [[NSFileManager defaultManager ] removeItemAtPath: currentPackageFolderPath
506
504
error: &deleteError];
507
- if (deleteError ) {
508
- CPLog (@" Error deleting current package contents at %@ " , currentPackageFolderPath);
505
+ if (!result ) {
506
+ CPLog (@" Error deleting current package contents at %@ error %@ " , currentPackageFolderPath, deleteError );
509
507
}
510
508
511
509
[info setValue: info[@" previousPackage" ] forKey: @" currentPackage" ];
@@ -514,18 +512,27 @@ + (void)rollbackPackage
514
512
[self updateCurrentPackageInfo: info error: &error];
515
513
}
516
514
517
- + (void )updateCurrentPackageInfo : (NSDictionary *)packageInfo
515
+ + (BOOL )updateCurrentPackageInfo : (NSDictionary *)packageInfo
518
516
error : (NSError **)error
519
517
{
520
518
NSData *packageInfoData = [NSJSONSerialization dataWithJSONObject: packageInfo
521
519
options: 0
522
520
error: error];
521
+ if (!packageInfoData) {
522
+ return NO ;
523
+ }
524
+
523
525
NSString *packageInfoString = [[NSString alloc ] initWithData: packageInfoData
524
526
encoding: NSUTF8StringEncoding];
525
- [packageInfoString writeToFile: [self getStatusFilePath ]
527
+ BOOL result = [packageInfoString writeToFile: [self getStatusFilePath ]
526
528
atomically: YES
527
529
encoding: NSUTF8StringEncoding
528
530
error: error];
531
+
532
+ if (!result) {
533
+ return NO ;
534
+ }
535
+ return YES ;
529
536
}
530
537
531
538
@end
0 commit comments