Ocha
可以监听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。
Ocha 在日语中是茶🍵的意思。
要使用 Ocha,首先创建一个 Watcher
实例,并指定要监视的文件路径。
let watcher = Watcher(paths: [pathString])
然后,您可以调用 Watcher.start(_:)
方法开始监视文件事件。 当文件被删除时,您将收到带有已删除文件路径信息的回调。
watcher.start { (events) in ... }
以下示例执行 git add << REMOVED_FILE_PATH >>
和 git commit -m << REMOVED_FILE_PATH >>
来监视文件路径,当它被删除时。
import Foundation
import Ocha
import SwiftShell
import PathKit
let path = Path(
#file.components(separatedBy: "/")
.dropLast() // main.swift
.dropLast() // GitCommitExample
.dropLast() // Sources
.joined(separator: "/")
)
let pathString = path.absolute().string
main.currentdirectory = pathString
let watcher = Watcher(paths: [pathString])
watcher.start { (events) in
let removedEventPaths = events
.filter { $0.flag.contains(.removedFile) }
.map { $0.path }
removedEventPaths.forEach { path in
main.run(bash: "git add \(path)")
main.run(bash: "git commit -m \"Delete file \(path)\"")
}
}
RunLoop.current.run()
如果您执行这段 swift 代码,您可以确认已删除文件的 git 日志。 $ git log -1
您可以通过编辑 Playground
目标轻松尝试 Ocha。
./Sources/Playground/main.swift
文件。swift run Playground
。Ocha 在 MIT 许可证下发布。 有关详细信息,请参见 LICENSE。
头部logo根据 CC BY-NC 4.0 许可证发布。 原始设计者:noainoue。