@@ -3,12 +3,13 @@ package config
3
3
import (
4
4
"context"
5
5
6
+ "github.com/go-kit/kit/log"
7
+ "github.com/mitchellh/cli"
6
8
"github.com/replicatedcom/ship/pkg/api"
7
- "github.com/replicatedcom/ship/pkg/fs"
8
9
"github.com/replicatedcom/ship/pkg/lifecycle/render/state"
9
- "github.com/replicatedcom/ship/pkg/logger"
10
10
"github.com/replicatedcom/ship/pkg/templates"
11
11
"github.com/replicatedcom/ship/pkg/ui"
12
+ "github.com/spf13/afero"
12
13
"github.com/spf13/viper"
13
14
)
14
15
@@ -18,9 +19,9 @@ type Resolver interface {
18
19
WithDaemon (d Daemon ) Resolver
19
20
}
20
21
21
- func ResolverFromViper ( v * viper. Viper ) Resolver {
22
+ func NewResolver ( logger log. Logger ) Resolver {
22
23
return & DaemonResolver {
23
- Logger : logger . FromViper ( v ) ,
24
+ Logger : logger ,
24
25
}
25
26
26
27
}
@@ -29,31 +30,60 @@ func (r *DaemonResolver) WithDaemon(d Daemon) Resolver {
29
30
return r
30
31
}
31
32
32
- func DaemonFromViper (v * viper.Viper ) Daemon {
33
+ func NewDaemon (
34
+ v * viper.Viper ,
35
+ headless * HeadlessDaemon ,
36
+ headed * ShipDaemon ,
37
+ ) Daemon {
38
+ if v .GetBool ("headless" ) {
39
+ return headless
40
+ }
41
+ return headed
42
+ }
33
43
34
- renderer := & APIConfigRenderer {
35
- Logger : logger .FromViper (v ),
44
+ func NewRenderer (
45
+ logger log.Logger ,
46
+ v * viper.Viper ,
47
+ builderBuilder * templates.BuilderBuilder ,
48
+ ) * APIConfigRenderer {
49
+ return & APIConfigRenderer {
50
+ Logger : logger ,
36
51
Viper : v ,
37
- BuilderBuilder : templates . BuilderBuilderFromViper ( v ) ,
52
+ BuilderBuilder : builderBuilder ,
38
53
}
54
+ }
39
55
40
- if v .GetBool ("headless" ) {
41
- return & HeadlessDaemon {
42
- StateManager : state .ManagerFromViper (v ),
43
- Logger : logger .FromViper (v ),
44
- UI : ui .FromViper (v ),
45
- ConfigRenderer : renderer ,
46
- }
56
+ func NewHeadlessDaemon (
57
+ v * viper.Viper ,
58
+ logger log.Logger ,
59
+ renderer * APIConfigRenderer ,
60
+ stateManager * state.Manager ,
61
+ ) * HeadlessDaemon {
62
+ return & HeadlessDaemon {
63
+ StateManager : stateManager ,
64
+ Logger : logger ,
65
+ UI : ui .FromViper (v ),
66
+ ConfigRenderer : renderer ,
47
67
}
68
+ }
48
69
70
+ func NewHeadedDaemon (
71
+ v * viper.Viper ,
72
+ renderer * APIConfigRenderer ,
73
+ stateManager * state.Manager ,
74
+ logger log.Logger ,
75
+ ui cli.Ui ,
76
+ fs afero.Afero ,
77
+ ) * ShipDaemon {
49
78
return & ShipDaemon {
50
- Logger : logger . FromViper ( v ) ,
51
- Fs : fs . FromViper ( v ) ,
52
- UI : ui . FromViper ( v ) ,
53
- StateManager : state . ManagerFromViper ( v ) ,
79
+ Logger : logger ,
80
+ Fs : fs ,
81
+ UI : ui ,
82
+ StateManager : stateManager ,
54
83
Viper : v ,
55
84
ConfigSaved : make (chan interface {}),
56
85
MessageConfirmed : make (chan string , 1 ),
57
86
ConfigRenderer : renderer ,
58
87
}
88
+
59
89
}
0 commit comments