mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-28 16:45:32 +00:00
58 lines
957 B
Go
58 lines
957 B
Go
package helpers
|
|
|
|
import "sync"
|
|
|
|
type LogMessage struct {
|
|
Commit string
|
|
File string
|
|
Message string
|
|
Fatal bool
|
|
}
|
|
|
|
type ParseLogger struct {
|
|
mu sync.Mutex
|
|
Messages []LogMessage
|
|
}
|
|
|
|
func NewParseLog() *ParseLogger {
|
|
return &ParseLogger{
|
|
Messages: make([]LogMessage, 0),
|
|
}
|
|
}
|
|
|
|
func (p *ParseLogger) AddMessage(commit, file, message string, fatal bool) {
|
|
p.mu.Lock()
|
|
defer p.mu.Unlock()
|
|
p.Messages = append(p.Messages, LogMessage{
|
|
Commit: commit,
|
|
File: file,
|
|
Message: message,
|
|
Fatal: fatal,
|
|
})
|
|
}
|
|
|
|
func (p *ParseLogger) Fatal() bool {
|
|
p.mu.Lock()
|
|
defer p.mu.Unlock()
|
|
for _, m := range p.Messages {
|
|
if m.Fatal {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (p *ParseLogger) GetMessages() []LogMessage {
|
|
p.mu.Lock()
|
|
defer p.mu.Unlock()
|
|
res := make([]LogMessage, len(p.Messages))
|
|
copy(res, p.Messages)
|
|
return res
|
|
}
|
|
|
|
func (p *ParseLogger) Clear() {
|
|
p.mu.Lock()
|
|
defer p.mu.Unlock()
|
|
p.Messages = make([]LogMessage, 0)
|
|
}
|