1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package client
- import (
- "gopkg.in/yaml.v2"
- "os"
- )
- const (
- // DefaultBaseURL is the base URL used to expand short topic names
- DefaultBaseURL = "https://ntfy.sh"
- )
- // Config is the config struct for a Client
- type Config struct {
- DefaultHost string `yaml:"default-host"`
- Subscribe []struct {
- Topic string `yaml:"topic"`
- User string `yaml:"user"`
- Password string `yaml:"password"`
- Command string `yaml:"command"`
- If map[string]string `yaml:"if"`
- } `yaml:"subscribe"`
- }
- // NewConfig creates a new Config struct for a Client
- func NewConfig() *Config {
- return &Config{
- DefaultHost: DefaultBaseURL,
- Subscribe: nil,
- }
- }
- // LoadConfig loads the Client config from a yaml file
- func LoadConfig(filename string) (*Config, error) {
- b, err := os.ReadFile(filename)
- if err != nil {
- return nil, err
- }
- c := NewConfig()
- if err := yaml.Unmarshal(b, c); err != nil {
- return nil, err
- }
- return c, nil
- }
|