feat: add auth in config + remove HandlerNone
This commit is contained in:
parent
f3e75af976
commit
e136afe706
2 changed files with 35 additions and 10 deletions
|
@ -6,6 +6,12 @@ log-format text
|
||||||
|
|
||||||
ntfy {
|
ntfy {
|
||||||
server "https://ntfy.sh"
|
server "https://ntfy.sh"
|
||||||
|
# optional username + password
|
||||||
|
# username test
|
||||||
|
# password test
|
||||||
|
|
||||||
|
# or access token
|
||||||
|
access-token "..."
|
||||||
}
|
}
|
||||||
|
|
||||||
handler "/flux" {
|
handler "/flux" {
|
||||||
|
|
|
@ -10,10 +10,17 @@ import (
|
||||||
type HandlerType int
|
type HandlerType int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
HandlerNone HandlerType = iota
|
HandlerFlux HandlerType = iota + 1
|
||||||
HandlerFlux
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func (h HandlerType) String() string {
|
||||||
|
switch h {
|
||||||
|
case HandlerFlux:
|
||||||
|
return "flux"
|
||||||
|
}
|
||||||
|
panic("unreachable")
|
||||||
|
}
|
||||||
|
|
||||||
type LogFormat int
|
type LogFormat int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -33,6 +40,9 @@ type Config struct {
|
||||||
type ntfy struct {
|
type ntfy struct {
|
||||||
Server string
|
Server string
|
||||||
DefaultTopic string
|
DefaultTopic string
|
||||||
|
AccessToken string
|
||||||
|
Username string
|
||||||
|
Password string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *ntfy) readConfig(cfg scfg.Block) error {
|
func (n *ntfy) readConfig(cfg scfg.Block) error {
|
||||||
|
@ -40,7 +50,20 @@ func (n *ntfy) readConfig(cfg scfg.Block) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return readString(cfg, "default-topic", &n.DefaultTopic)
|
if err := readString(cfg, "default-topic", &n.DefaultTopic); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: handle env var in config
|
||||||
|
if err := readString(cfg, "access-token", &n.AccessToken); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := readString(cfg, "username", &n.Username); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return readString(cfg, "password", &n.Password)
|
||||||
}
|
}
|
||||||
|
|
||||||
type handler struct {
|
type handler struct {
|
||||||
|
@ -108,29 +131,25 @@ func ReadConfig(path string) (Config, error) {
|
||||||
config.Handlers[key] = h
|
config.Handlers[key] = h
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, block := range cfg {
|
|
||||||
fmt.Printf("%+v\n", block)
|
|
||||||
|
|
||||||
}
|
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func readHandlerType(d *scfg.Directive) (HandlerType, error) {
|
func readHandlerType(d *scfg.Directive) (HandlerType, error) {
|
||||||
if d == nil {
|
if d == nil {
|
||||||
return HandlerNone, errors.New("handler.type is missing")
|
return 0, errors.New("handler.type is missing")
|
||||||
}
|
}
|
||||||
|
|
||||||
var ty string
|
var ty string
|
||||||
|
|
||||||
if err := d.ParseParams(&ty); err != nil {
|
if err := d.ParseParams(&ty); err != nil {
|
||||||
return HandlerNone, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ty {
|
switch ty {
|
||||||
case "flux":
|
case "flux":
|
||||||
return HandlerFlux, nil
|
return HandlerFlux, nil
|
||||||
default:
|
default:
|
||||||
return HandlerNone, fmt.Errorf("invalid handler type %q", ty)
|
return 0, fmt.Errorf("invalid handler type %q", ty)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue