You've already forked img-proxy-url-generator
This commit is contained in:
24
config/aws.go
Normal file
24
config/aws.go
Normal file
@@ -0,0 +1,24 @@
|
||||
package config
|
||||
|
||||
import "github.com/bigkevmcd/go-configparser"
|
||||
|
||||
type awsConfig struct {
|
||||
AwsKey string
|
||||
AwsSecret string
|
||||
AwsToken string
|
||||
AwsRegion string
|
||||
AwsBucket string
|
||||
AwsRole string
|
||||
}
|
||||
|
||||
func getAwsConfig(p *configparser.ConfigParser) *awsConfig {
|
||||
ac := &awsConfig{}
|
||||
ac.AwsKey, _ = p.Get("aws", "key")
|
||||
ac.AwsSecret, _ = p.Get("aws", "secret")
|
||||
ac.AwsToken, _ = p.Get("aws", "token")
|
||||
ac.AwsRegion, _ = p.Get("aws", "region")
|
||||
ac.AwsBucket, _ = p.Get("aws", "bucket")
|
||||
ac.AwsRole, _ = p.Get("aws", "role")
|
||||
|
||||
return ac
|
||||
}
|
||||
54
config/config.go
Normal file
54
config/config.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"github.com/bigkevmcd/go-configparser"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
initializeOnce sync.Once
|
||||
Generator *generatorConfig
|
||||
Aws *awsConfig
|
||||
Redis *redisConfig
|
||||
}
|
||||
|
||||
var c *Config
|
||||
|
||||
func GetConfig() *Config {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return c
|
||||
}
|
||||
|
||||
// NewConfig returns a new Config struct
|
||||
func NewConfig(path string) (*Config, error) {
|
||||
|
||||
if path == "" {
|
||||
path = "imgproxy.cfg"
|
||||
}
|
||||
|
||||
p, err := configparser.NewConfigParserFromFile(path)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
c = &Config{}
|
||||
|
||||
gc, err := getGeneratorConfig(p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.Generator = gc
|
||||
|
||||
if p.HasSection("aws") {
|
||||
c.Aws = getAwsConfig(p)
|
||||
}
|
||||
|
||||
if p.HasSection("redis") {
|
||||
c.Redis = getRedisConfig(p)
|
||||
}
|
||||
|
||||
return c, nil
|
||||
}
|
||||
43
config/generator.go
Normal file
43
config/generator.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/bigkevmcd/go-configparser"
|
||||
)
|
||||
|
||||
type generatorConfig struct {
|
||||
Salt []byte
|
||||
Key []byte
|
||||
Host string
|
||||
EncryptionKey string
|
||||
PlainUrl bool
|
||||
}
|
||||
|
||||
func getGeneratorConfig(p *configparser.ConfigParser) (*generatorConfig, error) {
|
||||
var config string
|
||||
var err error
|
||||
|
||||
gc := &generatorConfig{}
|
||||
if !p.HasSection("img-proxy") {
|
||||
return nil, fmt.Errorf("config error - [img-proxy] config required")
|
||||
}
|
||||
|
||||
config, _ = p.Get("img-proxy", "key")
|
||||
gc.Key = []byte(config)
|
||||
|
||||
config, _ = p.Get("img-proxy", "salt")
|
||||
gc.Salt = []byte(config)
|
||||
|
||||
if config, err = p.Get("img-proxy", "host"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
gc.Host = config
|
||||
|
||||
config, _ = p.Get("img-proxy", "plain-url")
|
||||
gc.PlainUrl = config == "true" || config == "1"
|
||||
|
||||
config, _ = p.Get("img-proxy", "encryption-key")
|
||||
gc.EncryptionKey = config
|
||||
|
||||
return gc, nil
|
||||
}
|
||||
19
config/redis.go
Normal file
19
config/redis.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package config
|
||||
|
||||
import "github.com/bigkevmcd/go-configparser"
|
||||
|
||||
type redisConfig struct {
|
||||
Host string
|
||||
Port string
|
||||
Password string
|
||||
DB string
|
||||
}
|
||||
|
||||
func getRedisConfig(p *configparser.ConfigParser) *redisConfig {
|
||||
rc := &redisConfig{}
|
||||
rc.Host, _ = p.Get("redis", "host")
|
||||
rc.Port, _ = p.Get("redis", "port")
|
||||
rc.Password, _ = p.Get("redis", "password")
|
||||
rc.DB, _ = p.Get("redis", "db")
|
||||
return rc
|
||||
}
|
||||
Reference in New Issue
Block a user