mirror of
				https://github.com/binwiederhier/ntfy.git
				synced 2025-10-31 13:02:24 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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"`
 | |
| 	DefaultUser     string  `yaml:"default-user"`
 | |
| 	DefaultPassword *string `yaml:"default-password"`
 | |
| 	DefaultCommand  string  `yaml:"default-command"`
 | |
| 	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,
 | |
| 		DefaultUser:     "",
 | |
| 		DefaultPassword: nil,
 | |
| 		DefaultCommand:  "",
 | |
| 		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
 | |
| }
 | 
