File tree Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Expand file tree Collapse file tree 2 files changed +24
-2
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ public final class Git: Shell {
17
17
case addAll
18
18
case commit( message: String , Bool = false )
19
19
case config( name: String , value: String )
20
- case clone( url: String )
20
+ case clone( url: String , dirName : String ? = nil )
21
21
case checkout( branch: String )
22
22
case log( Int ? = nil )
23
23
case push( remote: String ? = nil , branch: String ? = nil )
@@ -48,8 +48,11 @@ public final class Git: Shell {
48
48
if allowEmpty {
49
49
params. append ( " --allow-empty " )
50
50
}
51
- case . clone( let url) :
51
+ case . clone( let url, let dirname ) :
52
52
params = [ Command . clone. rawValue, url]
53
+ if let dirName = dirname {
54
+ params. append ( dirName)
55
+ }
53
56
case . checkout( let branch) :
54
57
params = [ Command . checkout. rawValue, branch]
55
58
case . log( let n) :
Original file line number Diff line number Diff line change @@ -103,6 +103,25 @@ final class GitKitTests: XCTestCase {
103
103
try self . clean ( path: path)
104
104
self . assert ( type: " output " , result: statusOutput, expected: expectation)
105
105
}
106
+
107
+ func testCloneWithDirectory( ) throws {
108
+ let path = self . currentPath ( )
109
+
110
+ let expectation = """
111
+ On branch master
112
+ Your branch is up to date with 'origin/master'.
113
+
114
+ nothing to commit, working tree clean
115
+ """
116
+
117
+ try self . clean ( path: path)
118
+ let git = Git ( path: path)
119
+
120
+ try git
. run ( . clone
( url
: " [email protected] :binarybirds/shell-kit" , dirName
: " MyCustomDirectory " ) )
121
+ let statusOutput = try git. run ( " cd \( path) /MyCustomDirectory && git status " )
122
+ try self . clean ( path: path)
123
+ self . assert ( type: " output " , result: statusOutput, expected: expectation)
124
+ }
106
125
107
126
#if os(macOS)
108
127
func testAsyncRun( ) throws {
You can’t perform that action at this time.
0 commit comments