Skip to content

Commit

Permalink
PBGitRepository: add a handle for in-worktree-commands
Browse files Browse the repository at this point in the history
  • Loading branch information
pieter committed Sep 22, 2008
1 parent 53dfea5 commit 4ebe4b4
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
1 change: 1 addition & 0 deletions PBGitCommitController.h
Expand Up @@ -14,4 +14,5 @@
NSArray *cachedFiles;
}

@property (retain) NSArray *unstagedFiles, *cachedFiles;
@end
1 change: 1 addition & 0 deletions PBGitRepository.h
Expand Up @@ -21,6 +21,7 @@ extern NSString* PBGitRepositoryErrorDomain;

- (NSFileHandle*) handleForCommand:(NSString*) cmd;
- (NSFileHandle*) handleForArguments:(NSArray*) args;
- (NSFileHandle *) handleInWorkDirForArguments:(NSArray *)args;
- (NSString*) outputForCommand:(NSString*) cmd;
- (NSString*) outputForCommand:(NSString *)str retValue:(int *)ret;
- (NSString*) outputForArguments:(NSArray*) args;
Expand Down
24 changes: 24 additions & 0 deletions PBGitRepository.m
Expand Up @@ -257,6 +257,22 @@ - (void) readCurrentBranch
[self selectBranch: [self addBranch: [self headRef]]];
}

- (NSString *) workingDirectory
{
if ([self.fileURL.path hasSuffix:@"/.git"])
return [self.fileURL.path substringToIndex:[self.fileURL.path length] - 5];
else if ([[self outputForCommand:@"rev-parse --is-inside-work-tree"] isEqualToString:@"true"])
return gitPath;

return nil;
}

- (int) returnValueForCommand:(NSString *)cmd
{
int i;
[self outputForCommand:cmd retValue: &i];
return i;
}

- (NSFileHandle*) handleForArguments:(NSArray *)args
{
Expand All @@ -266,6 +282,14 @@ - (NSFileHandle*) handleForArguments:(NSArray *)args
return [PBEasyPipe handleForCommand:gitPath withArgs:arguments];
}

- (NSFileHandle*) handleInWorkDirForArguments:(NSArray *)args
{
NSString* gitDirArg = [@"--git-dir=" stringByAppendingString:self.fileURL.path];
NSMutableArray* arguments = [NSMutableArray arrayWithObject: gitDirArg];
[arguments addObjectsFromArray: args];
return [PBEasyPipe handleForCommand:gitPath withArgs:arguments inDir:[self workingDirectory]];
}

- (NSFileHandle*) handleForCommand:(NSString *)cmd
{
NSArray* arguments = [cmd componentsSeparatedByString:@" "];
Expand Down

0 comments on commit 4ebe4b4

Please sign in to comment.