-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
54 lines (46 loc) · 1.26 KB
/
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
53
54
package main
import (
"flag"
"os"
"strings"
"abb_ia/cmd"
"abb_ia/internal/config"
"abb_ia/internal/logger"
"abb_ia/internal/utils"
)
// Min screen size for comfortable layout 45x125 characters
func main() {
config.Load()
// command line arguments
logLevel := flag.String("log-level", "INFO", "Logging level")
useMock := flag.Bool("mock-load", false, "Use mock data")
saveMock := flag.Bool("mock-save", false, "Save mock data")
help := flag.Bool("help", false, "Display usage information")
flag.Parse()
// get IA search condition from command line if specified
searchCondition := flag.Arg(0)
// display usage information
if *help {
flag.Usage()
os.Exit(0)
}
// save runtime configuration
if searchCondition != "" {
condition := strings.Split(searchCondition, " - ")
if len(condition) == 2 {
config.Instance().SetDefaultAuthor(condition[0])
config.Instance().SetDefaultTitle(condition[1])
}
}
if utils.IsFlagPassed("log-level") {
config.Instance().SetLogLevel(*logLevel)
}
if utils.IsFlagPassed("mock-load") {
config.Instance().SetUseMock(*useMock)
}
if utils.IsFlagPassed("mock-save") {
config.Instance().SetSaveMock(*saveMock)
}
logger.Init(config.Instance().GetLogFileName(), config.Instance().GetLogLevel())
cmd.Execute()
}