go-scan/config/config.go

44 lines
1,001 B
Go
Raw Normal View History

2022-06-24 15:31:48 +02:00
package config
import (
"os"
"strings"
"velvettear/go-scan/util/environment"
)
// exported functions
func New() Config {
config := Config{
ServerConfig: serverConfig{
Address: environment.New("GO_SCAN_ADDRESS", "0.0.0.0").Value(),
Port: environment.New("GO_SCAN_PORT", "9000").Value(),
},
ScannerConfig: scannerConfig{
Scanner: environment.New("GO_SCAN_SCANNER", "").Value(),
OutputDirectory: environment.New("GO_SCAN_OUTPUTDIRECTORY", os.TempDir()).Value(),
Arguments: environment.New("GO_SCAN_ARGUMENTS", "").Value(),
},
}
if !strings.HasSuffix(config.ScannerConfig.OutputDirectory, "/") {
config.ScannerConfig.OutputDirectory = config.ScannerConfig.OutputDirectory + "/"
}
return config
}
// structs
type Config struct {
ServerConfig serverConfig
ScannerConfig scannerConfig
}
type serverConfig struct {
Port string
Address string
}
type scannerConfig struct {
Scanner string
OutputDirectory string
Arguments string
}