Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/cli. OpenStatus CLI www.openstatus.dev
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253package config
import ( "errors" "os"
"github.com/knadh/koanf/parsers/yaml" "github.com/knadh/koanf/providers/file" "github.com/knadh/koanf/v2")
type Lock struct { Monitor Monitor `yaml:"monitor"` ID int `yaml:"id"`}
type MonitorsLock map[string]Lock
func ReadLockFile(filename string) (MonitorsLock, error) {
var out MonitorsLock if _, err := os.Stat(filename); errors.Is(err, os.ErrNotExist) { return MonitorsLock{}, nil }
file := file.Provider(filename) var k = koanf.New(".")
err := k.Load(file, yaml.Parser())
if err != nil { return nil, err } err = k.Unmarshal("", &out) if err != nil { return nil, err }
for _, value := range out { for _, assertion := range value.Monitor.Assertions { if assertion.Kind == Header || assertion.Kind == TextBody { assertion.Target = assertion.Target.(string) } if assertion.Kind == StatusCode { assertion.Target = assertion.Target.(int) } } }
return out, nil
}