mirror of
				https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
				synced 2025-10-31 09:55:30 +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)
 | |
| }
 | 
