50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package config
|
|
|
|
import "cmp"
|
|
|
|
// Destination holds the configuration for a destination.
|
|
type Destination struct {
|
|
Name string `yaml:"name"`
|
|
URL string `yaml:"url"`
|
|
}
|
|
|
|
// LogFile holds the configuration for the log file.
|
|
type LogFile struct {
|
|
Enabled bool `yaml:"enabled"`
|
|
Path string `yaml:"path,omitempty"`
|
|
|
|
defaultPath string
|
|
}
|
|
|
|
// GetPath returns the path to the log file. If the path is not set, it
|
|
// returns the default log path.
|
|
func (l LogFile) GetPath() string {
|
|
return cmp.Or(l.Path, l.defaultPath)
|
|
}
|
|
|
|
// NetAddr holds an IP and/or port.
|
|
type NetAddr struct {
|
|
IP string `yaml:"ip,omitempty"`
|
|
Port int `yaml:"port,omitempty"`
|
|
}
|
|
|
|
// RTMPSource holds the configuration for the RTMP source.
|
|
type RTMPSource struct {
|
|
Enabled bool `yaml:"enabled"`
|
|
StreamKey string `yaml:"streamKey,omitempty"`
|
|
Host string `yaml:"host,omitempty"`
|
|
BindAddr NetAddr `yaml:"bindAddr,omitempty"`
|
|
}
|
|
|
|
// Sources holds the configuration for the sources.
|
|
type Sources struct {
|
|
RTMP RTMPSource `yaml:"rtmp"`
|
|
}
|
|
|
|
// Config holds the configuration for the application.
|
|
type Config struct {
|
|
LogFile LogFile `yaml:"logfile"`
|
|
Sources Sources `yaml:"sources"`
|
|
Destinations []Destination `yaml:"destinations"`
|
|
}
|