ApplicationController: Make sure gitx installation-path exists

When trying to install the gitx symlink into /usr/local/bin, GitX would
fail if the directory /usr/local/bin didn't exist yet. We simply call
mkdir -p in advance, which only creates the directory if doesn't exist.
This commit is contained in:
Johannes Gilger
2009-02-08 13:31:16 +01:00
parent 308a5af02f
commit b18d9af2aa
+6 -2
View File
@@ -92,12 +92,16 @@
- (IBAction)installCliTool:(id)sender;
{
BOOL success = NO;
NSString* installationPath = @"/usr/local/bin/gitx";
NSString* installationPath = @"/usr/local/bin/";
NSString* installationName = @"gitx";
NSString* toolPath = [[NSBundle mainBundle] pathForResource:@"gitx" ofType:@""];
if (toolPath) {
AuthorizationRef auth;
if (AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth) == errAuthorizationSuccess) {
char const* arguments[] = { "-f", "-s", [toolPath UTF8String], [installationPath UTF8String], NULL };
char const* mkdir_arg[] = { "-p", [installationPath UTF8String], NULL};
char const* mkdir = "/bin/mkdir";
AuthorizationExecuteWithPrivileges(auth, mkdir, kAuthorizationFlagDefaults, (char**)mkdir_arg, NULL);
char const* arguments[] = { "-f", "-s", [toolPath UTF8String], [[installationPath stringByAppendingString: installationName] UTF8String], NULL };
char const* helperTool = "/bin/ln";
if (AuthorizationExecuteWithPrivileges(auth, helperTool, kAuthorizationFlagDefaults, (char**)arguments, NULL) == errAuthorizationSuccess) {
int status;