FBSimulatorControl/Strategies/FBSimulatorEraseStrategy.m (34 lines of code) (raw):
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import "FBSimulatorEraseStrategy.h"
#import <CoreSimulator/SimDevice.h>
#import "FBSimulator.h"
#import "FBSimulatorError.h"
#import "FBSimulatorSet.h"
#import "FBSimulatorShutdownStrategy.h"
@implementation FBSimulatorEraseStrategy
#pragma mark Public
+ (FBFuture<NSNull *> *)erase:(FBSimulator *)simulator
{
return [[FBSimulatorShutdownStrategy
shutdown:simulator]
onQueue:simulator.workQueue fmap:^(id _) {
return [self eraseContentsAndSettings:simulator];
}];
}
#pragma mark Private
+ (FBFuture<FBSimulator *> *)eraseContentsAndSettings:(FBSimulator *)simulator
{
[simulator.logger logFormat:@"Erasing %@", simulator];
FBMutableFuture<FBSimulator *> *future = FBMutableFuture.future;
[simulator.device
eraseContentsAndSettingsAsyncWithCompletionQueue:simulator.workQueue
completionHandler:^(NSError *error){
if (error) {
[future resolveWithError:error];
} else {
[simulator.logger logFormat:@"Erased %@", simulator];
[future resolveWithResult:simulator];
}
}];
return future;
}
@end