diff --git a/SwiftGit2/Repository.swift b/SwiftGit2/Repository.swift index 12a0d9c..95326c1 100644 --- a/SwiftGit2/Repository.swift +++ b/SwiftGit2/Repository.swift @@ -537,4 +537,133 @@ final public class Repository { let iterator = CommitIterator(repo: self, root: branch.oid.oid) return iterator } + + // MARK: - Status + + public func getRepositoryStatus() -> String { + + // adapted from https://github.com/arrbee/libgit2/blob/f18f772a8ec0cdff9315216886383dadce1379b5/examples/status.c + + var returnString = "" + + // Do this because GIT_STATUS_OPTIONS_INIT is unavailable in swift + let pointer = UnsafeMutablePointer.allocate(capacity: 1) + git_status_init_options(pointer, UInt32(GIT_STATUS_OPTIONS_VERSION)) + var options = pointer.move() + pointer.deallocate(capacity: 1) + + var status: OpaquePointer? = nil + git_status_list_new(&status, self.pointer, &options) + + let count = git_status_list_entrycount(status) + + for i in 0..