2015-07-06 19:41:21 +00:00
|
|
|
package config // import "github.com/Luzifer/mondash/config"
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/spf13/pflag"
|
|
|
|
)
|
|
|
|
|
2015-07-06 19:44:13 +00:00
|
|
|
// Config is a storage struct for configuration parameters
|
2015-07-06 19:41:21 +00:00
|
|
|
type Config struct {
|
|
|
|
Storage string
|
|
|
|
BaseURL string
|
|
|
|
APIToken string
|
|
|
|
|
2015-07-06 20:23:46 +00:00
|
|
|
Listen string
|
|
|
|
|
2015-07-06 19:41:21 +00:00
|
|
|
S3 struct {
|
|
|
|
Bucket string
|
|
|
|
}
|
2015-07-06 20:08:27 +00:00
|
|
|
|
|
|
|
FileStorage struct {
|
|
|
|
Directory string
|
|
|
|
}
|
2015-07-06 19:41:21 +00:00
|
|
|
}
|
|
|
|
|
2015-07-06 19:44:13 +00:00
|
|
|
// Load parses arguments / ENV variable to load configuration
|
2015-07-06 19:41:21 +00:00
|
|
|
func Load() *Config {
|
|
|
|
cfg := &Config{}
|
2015-07-06 20:08:27 +00:00
|
|
|
pflag.StringVar(&cfg.Storage, "storage", "s3", "Storage engine to use (s3, file)")
|
2015-07-06 19:41:21 +00:00
|
|
|
pflag.StringVar(&cfg.BaseURL, "baseurl", os.Getenv("BASE_URL"), "The Base-URL the application is running on for example https://mondash.org")
|
|
|
|
pflag.StringVar(&cfg.APIToken, "api-token", os.Getenv("API_TOKEN"), "API Token used for the /welcome dashboard (you can choose your own)")
|
2015-07-06 20:23:46 +00:00
|
|
|
pflag.StringVar(&cfg.Listen, "listen", ":3000", "Address to listen on")
|
2015-07-06 19:41:21 +00:00
|
|
|
|
|
|
|
// S3
|
|
|
|
pflag.StringVar(&cfg.S3.Bucket, "s3Bucket", os.Getenv("S3Bucket"), "Bucket to use for S3 storage")
|
|
|
|
|
2015-07-06 20:08:27 +00:00
|
|
|
// FileStorage
|
|
|
|
pflag.StringVar(&cfg.FileStorage.Directory, "fileDirectory", "./", "Directory to use for plain text storage")
|
|
|
|
|
2015-07-06 19:41:21 +00:00
|
|
|
pflag.Parse()
|
|
|
|
return cfg
|
|
|
|
}
|