/
main.go
52 lines (45 loc) · 1021 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main
import (
"fmt"
"io"
"log"
"os"
"github.com/cep21/cfmanage/internal/awscache"
"github.com/cep21/cfmanage/internal/cleanup"
"github.com/cep21/cfmanage/internal/cobracmds"
"github.com/cep21/cfmanage/internal/ctxfinder"
"github.com/cep21/cfmanage/internal/logger"
"github.com/cep21/cfmanage/internal/templatereader"
)
var App = Application{ //nolint
Out: os.Stdout,
}
func main() {
App.main()
}
type Application struct {
Out io.Writer
}
func (a *Application) main() {
l := &logger.Logger{
Logger: log.New(a.Out, "cfmanage", log.LstdFlags),
}
Cleanup := &cleanup.Cleanup{}
rootCmd := cobracmds.RootCommand{
AWSCache: &awscache.AWSCache{
Cleanup: Cleanup,
},
T: &templatereader.TemplateFinder{
Logger: l,
},
Ctx: &templatereader.CreateChangeSetTemplate{},
Logger: l,
Out: a.Out,
Cleanup: Cleanup,
ContextFinder: &ctxfinder.ContextFinder{},
}
if err := rootCmd.Cobra().Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}