Skip to content

Commit

Permalink
Pass environment via options so as not to interfere with the WaxSim p…
Browse files Browse the repository at this point in the history
…rocess itself.
  • Loading branch information
Rob Holland committed Jun 24, 2010
1 parent a13bcd0 commit 5542294
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
3 changes: 2 additions & 1 deletion Simulator.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@
DTiPhoneSimulatorSystemRoot *_sdk;
NSNumber *_family;
DTiPhoneSimulatorSession* _session;
NSDictionary *_env;
NSArray *_args;
}

@property (nonatomic, readonly) DTiPhoneSimulatorSession* session;

+ (NSArray *)availableSDKs;

- (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *)family args:(NSArray *)args;
- (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *)family env:(NSDictionary *)env args:(NSArray *)args;
- (int)launch;
- (void)end;

Expand Down
5 changes: 3 additions & 2 deletions Simulator.m
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ @implementation Simulator

@synthesize session=_session;

- (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *)family args:(NSArray *)args {
- (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *)family env:(NSDictionary *)env args:(NSArray *)args {
self = [super init];

NSFileManager *fileManager = [NSFileManager defaultManager];
Expand Down Expand Up @@ -54,6 +54,7 @@ - (id)initWithAppPath:(NSString *)appPath sdk:(NSString *)sdk family:(NSString *
_family = [NSNumber numberWithInt: 1];
}

_env = [env retain];
_args = [args retain];

return self;
Expand Down Expand Up @@ -85,7 +86,7 @@ - (int)launch {
[config setSimulatedDeviceFamily:_family];
[config setSimulatedApplicationShouldWaitForDebugger:NO];
[config setSimulatedApplicationLaunchArgs:_args];
[config setSimulatedApplicationLaunchEnvironment:[[NSProcessInfo processInfo] environment]];
[config setSimulatedApplicationLaunchEnvironment:_env];
[config setLocalizedClientName:@"iCuke"];

// Make the simulator output to the current STDOUT & STDERR
Expand Down
20 changes: 15 additions & 5 deletions WaxSim.m
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
static BOOL gReset = false;

void printUsage();
void simulate(NSString *sdk, NSString *family, NSString *appPath, NSMutableArray *additionalArgs);
void simulate(NSString *sdk, NSString *family, NSString *appPath, NSDictionary *environment, NSArray *additionalArgs);
void resetSignal(int sig);

int main(int argc, char *argv[]) {
Expand All @@ -17,9 +17,17 @@ int main(int argc, char *argv[]) {
char *family = nil;
char *appPath = nil;
NSMutableArray *additionalArgs = [NSMutableArray array];
NSMutableDictionary *environment = [NSMutableDictionary dictionary];
NSString *environment_variable;
NSArray *environment_variable_parts;

while ((c = getopt(argc, argv, "s:ah")) != -1) {
while ((c = getopt(argc, argv, "e:s:f:ah")) != -1) {
switch(c) {
case 'e':
environment_variable = [NSString stringWithCString:optarg encoding:NSUTF8StringEncoding];
environment_variable_parts = [environment_variable componentsSeparatedByString:@"="];

[environment setObject:[environment_variable_parts objectAtIndex:1] forKey:[environment_variable_parts objectAtIndex:0]];
case 's':
sdk = optarg;
break;
Expand Down Expand Up @@ -74,15 +82,15 @@ int main(int argc, char *argv[]) {
while (true) {
gReset = false;

simulate(sdkString, familyString, appPathString, additionalArgs);
simulate(sdkString, familyString, appPathString, environment, additionalArgs);
printf("\n\nREBOOT\n", appPath);
}

return 0;
}

void simulate(NSString *sdk, NSString *family, NSString *appPath, NSMutableArray *additionalArgs) {
Simulator *simulator = [[Simulator alloc] initWithAppPath:appPath sdk:sdk family:family args:additionalArgs];
void simulate(NSString *sdk, NSString *family, NSString *appPath, NSDictionary *environment, NSArray *additionalArgs) {
Simulator *simulator = [[Simulator alloc] initWithAppPath:appPath sdk:sdk family:family env:environment args:additionalArgs];
[simulator launch];

while (!gReset && [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:-1]]) ;
Expand All @@ -95,6 +103,8 @@ void printUsage() {
fprintf(stderr, "example: waxsim -s 2.2 /path/to/app.app\n");
fprintf(stderr, "Available options are:\n");
fprintf(stderr, "\t-s sdk\tVersion number of sdk to use (-s 3.1)\n");
fprintf(stderr, "\t-f family\tDevice to use (-f ipad)\n");
fprintf(stderr, "\t-e VAR=value\tEnvironment variable to set (-e CFFIXED_HOME=/tmp/iphonehome)\n");
fprintf(stderr, "\t-a \tAvailable SDK's\n");
fprintf(stderr, "\t-h \tPrints out this wonderful documentation!\n");
}
Expand Down

0 comments on commit 5542294

Please sign in to comment.