43 lines
1,001 B
Go
43 lines
1,001 B
Go
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
|
|
}
|