Emcee

Форк
0
47 строк · 1.2 Кб
1
import DateProvider
2
import EventBus
3
import FileSystem
4
import Foundation
5
import Plugin
6

7
class Listener: DefaultBusListener {
8
    var allEvents = [AppleRunnerEvent]()
9
    
10
    override func runnerEvent(_ event: AppleRunnerEvent) {
11
        allEvents.append(event)
12
    }
13
    
14
    override func tearDown() {
15
        write()
16
    }
17
    
18
    private func write() {
19
        for event in allEvents {
20
            do {
21
                guard let outputPath = event.testContext.environment["EMCEE_TEST_PLUGIN_OUTPUT"] else {
22
                    print("Error: TestingPlugin requires runner events to specify env.EMCEE_TEST_PLUGIN_OUTPUT")
23
                    exit(1)
24
                }
25
                let encoder = JSONEncoder()
26
                let data = try encoder.encode(event)
27
                try data.write(to: URL(fileURLWithPath: outputPath), options: .atomicWrite)
28
            } catch {
29
                print("Error: \(error)")
30
            }
31
        }
32
    }
33
}
34

35
func main() throws -> Int32 {
36
    let eventBus = EventBus()
37
    let listener = Listener()
38
    eventBus.add(stream: listener)
39
    
40
    let plugin = try Plugin(eventBus: eventBus)
41
    plugin.streamPluginEvents()
42
    plugin.join()
43
    
44
    return 0
45
}
46

47
exit(try main())
48

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.