From 027d27fcfb7726e23623cabaaafa0356868c3942 Mon Sep 17 00:00:00 2001 From: Jeffrey Sambells Date: Thu, 28 Oct 2010 15:54:40 -0400 Subject: [PATCH] Added initial commit button functionality. --- English.lproj/MyDocument.xib | 57 +++++++++++++++++++++++++++++++----- MyDocument.h | 4 +++ MyDocument.m | 45 ++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+), 7 deletions(-) diff --git a/English.lproj/MyDocument.xib b/English.lproj/MyDocument.xib index fca12af..908283c 100644 --- a/English.lproj/MyDocument.xib +++ b/English.lproj/MyDocument.xib @@ -552,6 +552,14 @@ 100043 + + + commitChanges: + + + + 100044 + @@ -756,7 +764,7 @@ - 100043 + 100044 @@ -765,14 +773,35 @@ MyDocument NSDocument - copyGeneratedHTMLAction: - id + YES + + YES + commitChanges: + copyGeneratedHTMLAction: + + + YES + id + id + - copyGeneratedHTMLAction: - - copyGeneratedHTMLAction: - id + YES + + YES + commitChanges: + copyGeneratedHTMLAction: + + + YES + + commitChanges: + id + + + copyGeneratedHTMLAction: + id + @@ -1215,6 +1244,20 @@ Foundation.framework/Headers/NSURLDownload.h + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUAppcast.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUUpdater.h + + NSObject diff --git a/MyDocument.h b/MyDocument.h index 9d10de0..5c17aa1 100644 --- a/MyDocument.h +++ b/MyDocument.h @@ -22,8 +22,12 @@ BOOL hasSavedOrigin; NSPoint savedOrigin; BOOL savedAtBottom; + + NSTask *commit; + NSPipe *gitOut; } - (IBAction)copyGeneratedHTMLAction:(id)sender; +- (IBAction)commitChanges:(id)sender; @end diff --git a/MyDocument.m b/MyDocument.m index 078b818..68fe272 100644 --- a/MyDocument.m +++ b/MyDocument.m @@ -58,6 +58,14 @@ - (id)init { userInfo:nil repeats:YES]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(finishedCommit:) + name:NSTaskDidTerminateNotification + object:nil]; + + commit = nil; + gitOut = [[NSPipe alloc] init]; + } return self; } @@ -157,4 +165,41 @@ - (IBAction)copyGeneratedHTMLAction:(id)sender { [[NSPasteboard generalPasteboard] setString:[self markdown2html:[markdownSource string]] forType:NSStringPboardType]; } +- (IBAction)commitChanges:(id)sender; +{ + //http://cocoadevcentral.com/articles/000025.php + //http://github.com/pieter/gitx/blob/master/PBGitBinary.m + + NSLog(@"Commiting changes."); + + commit=[[NSTask alloc] init]; + [commit setLaunchPath:@"/usr/bin/git"]; + + NSMutableArray *components = [NSMutableArray arrayWithArray:[[self fileURL] pathComponents]]; + [components removeLastObject]; + + NSLog(@"path: %@", [components componentsJoinedByString:@"/"]); + + [commit setCurrentDirectoryPath: [[components componentsJoinedByString:@"/"] stringByExpandingTildeInPath]]; + + [commit setArguments:[NSArray arrayWithObjects:@"commit", [[[self fileURL] pathComponents] lastObject], @"-m",@"Commit Message",nil]]; + + [commit setStandardOutput:gitOut]; + + NSLog(@"Commit: %@", commit); + + [commit launch]; +} + +- (void)finishedCommit:(NSNotification *)aNotification { + + //NSData *output = [[gitOut fileHandleForReading] readDataToEndOfFile]; + //NSString *string = [[[NSString alloc] initWithData: output encoding: NSUTF8StringEncoding] autorelease]; + //NSLog(@"GITOUT:", string); + + [commit release]; // Don't forget to clean up memory + commit=nil; // Just in case... + +} + @end