Big rafactoring : code split in several modules and some other best practices
This commit is contained in:
parent
e07ce016c4
commit
bea8e5aba8
16 changed files with 506 additions and 386 deletions
40
state/parser.go
Normal file
40
state/parser.go
Normal file
|
@ -0,0 +1,40 @@
|
|||
package state
|
||||
|
||||
import (
|
||||
"bareos-zabbix-check/config"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Parse parses a bareos state file
|
||||
func (s *State) Parse(c *config.Config) (err error) {
|
||||
s.config = c
|
||||
// Open the state file
|
||||
file, err := os.Open(c.StateFile())
|
||||
if err != nil {
|
||||
return fmt.Errorf("INFO Couldn't open state file : %s", err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
err = s.parseHeader(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = s.parseJobs(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// readNextBytes : Reads the next "number" bytes from a "file", returns the number of bytes actually read as well as the bytes read
|
||||
func (s *State) readNextBytes(file *os.File, number int) (n int, bytes []byte, err error) {
|
||||
bytes = make([]byte, number)
|
||||
n, err = file.Read(bytes)
|
||||
if err != nil {
|
||||
return 0, nil, fmt.Errorf("file.Read failed in %s : %s", s.config.StateFile(), err)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue