mirror of
https://github.com/kennethreitz-archive/gitx.git
synced 2026-06-05 23:40:18 +00:00
PBGitRepository: add a handle for in-worktree-commands
This commit is contained in:
@@ -14,4 +14,5 @@
|
||||
NSArray *cachedFiles;
|
||||
}
|
||||
|
||||
@property (retain) NSArray *unstagedFiles, *cachedFiles;
|
||||
@end
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -257,6 +257,22 @@ static NSString* gitPath;
|
||||
[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
|
||||
{
|
||||
@@ -266,6 +282,14 @@ static NSString* gitPath;
|
||||
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:@" "];
|
||||
|
||||
Reference in New Issue
Block a user