30 lines
518 B
Go
30 lines
518 B
Go
|
package http
|
||
|
|
||
|
import "log"
|
||
|
|
||
|
type Options struct {
|
||
|
Logger func(message string, args ...any)
|
||
|
CustomDir string `env:"CUSTOM_DIR"`
|
||
|
}
|
||
|
|
||
|
type OptionFunc func(*Options)
|
||
|
|
||
|
func DefaultOptions() *Options {
|
||
|
return &Options{
|
||
|
Logger: log.Printf,
|
||
|
CustomDir: "",
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithLogger(logger func(message string, args ...any)) func(*Options) {
|
||
|
return func(opts *Options) {
|
||
|
opts.Logger = logger
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func WithCustomDir(customDir string) func(*Options) {
|
||
|
return func(opts *Options) {
|
||
|
opts.CustomDir = customDir
|
||
|
}
|
||
|
}
|