mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user