47 lines
		
	
	
		
			1014 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1014 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package config
 | 
						|
 | 
						|
import (
 | 
						|
	"os"
 | 
						|
 | 
						|
	"golang.org/x/xerrors"
 | 
						|
)
 | 
						|
 | 
						|
// AzureConf is azure config
 | 
						|
type AzureConf struct {
 | 
						|
	// Azure account name to use. AZURE_STORAGE_ACCOUNT environment variable is used if not specified
 | 
						|
	AccountName string `json:"accountName"`
 | 
						|
 | 
						|
	// Azure account key to use. AZURE_STORAGE_ACCESS_KEY environment variable is used if not specified
 | 
						|
	AccountKey string `json:"-"`
 | 
						|
 | 
						|
	// Azure storage container name
 | 
						|
	ContainerName string `json:"containerName"`
 | 
						|
 | 
						|
	Enabled bool `toml:"-" json:"-"`
 | 
						|
}
 | 
						|
 | 
						|
const (
 | 
						|
	azureAccount = "AZURE_STORAGE_ACCOUNT"
 | 
						|
	azureKey     = "AZURE_STORAGE_ACCESS_KEY"
 | 
						|
)
 | 
						|
 | 
						|
// Validate configuration
 | 
						|
func (c *AzureConf) Validate() (errs []error) {
 | 
						|
	if !c.Enabled {
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	// overwrite if env var is not empty
 | 
						|
	if os.Getenv(azureAccount) != "" {
 | 
						|
		c.AccountName = os.Getenv(azureAccount)
 | 
						|
	}
 | 
						|
	if os.Getenv(azureKey) != "" {
 | 
						|
		c.AccountKey = os.Getenv(azureKey)
 | 
						|
	}
 | 
						|
 | 
						|
	if c.ContainerName == "" {
 | 
						|
		errs = append(errs, xerrors.Errorf("Azure storage container name is required"))
 | 
						|
	}
 | 
						|
	return
 | 
						|
}
 |