Allow to use env vars in config
This commit is contained in:
parent
5e6a5e23fd
commit
2b4c6d3318
@ -10,7 +10,7 @@ import (
|
||||
const (
|
||||
APP_NAME = "Git repository manager"
|
||||
APP_DESCRIPTION = "Manage your repository with simple app"
|
||||
VERSION = "0.1"
|
||||
VERSION = "0.1.1"
|
||||
)
|
||||
|
||||
type GitRepositoryManager struct {
|
||||
|
@ -90,5 +90,5 @@ func Example_test_sync_output() {
|
||||
// Output:
|
||||
// Info: Synchronizing repositories
|
||||
// Info: All repositories are synced
|
||||
// Info: Current version: 0.1
|
||||
// Info: Current version: 0.1.1
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package config
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
@ -13,6 +14,8 @@ func GetRepositoryConfig(data []byte, fileExtension string) (Configuration, erro
|
||||
var config Configuration
|
||||
var err error
|
||||
|
||||
data = []byte(os.ExpandEnv(string(data)))
|
||||
|
||||
switch fileExtension {
|
||||
case "yaml":
|
||||
err = yaml.Unmarshal(data, &config)
|
||||
|
@ -2,12 +2,26 @@ package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
var exampleYamlConfig = []byte(`
|
||||
workspace: /tmp
|
||||
func TestNotSupportedFileExcension(t *testing.T) {
|
||||
|
||||
_, err := GetRepositoryConfig([]byte("test"), "custom")
|
||||
if err == nil {
|
||||
t.Error("Expected to get error")
|
||||
}
|
||||
if err.Error() != errNotSupportedType {
|
||||
t.Errorf("Expected to get %v, instead of this got %v", errNotSupportedType, err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetRepositoryConfigFromYaml(t *testing.T) {
|
||||
|
||||
var exampleYamlConfig = []byte(`
|
||||
workspace: ${HOME}
|
||||
repositories:
|
||||
- src: "https://github.com/example/example.git"
|
||||
dest: "example/path"
|
||||
@ -15,8 +29,10 @@ repositories:
|
||||
- src: https://github.com/example/example2.git
|
||||
`)
|
||||
|
||||
var destinationConfiguration = Configuration{
|
||||
Workspace: "/tmp",
|
||||
homedir, _ := os.UserHomeDir()
|
||||
|
||||
var destinationConfiguration = Configuration{
|
||||
Workspace: homedir,
|
||||
Repositories: []RepositoryConfig{
|
||||
{
|
||||
Name: "custom_example",
|
||||
@ -29,19 +45,7 @@ var destinationConfiguration = Configuration{
|
||||
Dest: "example2",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestNotSupportedFileExcension(t *testing.T) {
|
||||
_, err := GetRepositoryConfig(exampleYamlConfig, "custom")
|
||||
if err == nil {
|
||||
t.Error("Expected to get error")
|
||||
}
|
||||
if err.Error() != errNotSupportedType {
|
||||
t.Errorf("Expected to get %v, instead of this got %v", errNotSupportedType, err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetRepositoryConfigFromYaml(t *testing.T) {
|
||||
|
||||
result, err := GetRepositoryConfig(exampleYamlConfig, "yaml")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user