6
6
"mjpclab.dev/ehfs/src/middleware"
7
7
"mjpclab.dev/ehfs/src/param"
8
8
"mjpclab.dev/ehfs/src/version"
9
+ "mjpclab.dev/ghfs/src"
9
10
"mjpclab.dev/ghfs/src/app"
10
11
"mjpclab.dev/ghfs/src/serverError"
11
12
"mjpclab.dev/ghfs/src/setting"
@@ -22,7 +23,6 @@ func cleanupOnEnd(appInst *app.App) {
22
23
go func () {
23
24
<- chSignal
24
25
appInst .Shutdown ()
25
- os .Exit (0 )
26
26
}()
27
27
}
28
28
@@ -33,44 +33,62 @@ func reopenLogOnHup(appInst *app.App) {
33
33
go func () {
34
34
for range chSignal {
35
35
errs := appInst .ReOpenLog ()
36
- serverError .CheckFatal (errs ... )
36
+ if serverError .CheckError (errs ... ) {
37
+ appInst .Shutdown ()
38
+ break
39
+ }
37
40
}
38
41
}()
39
42
}
40
43
41
44
func Main () {
42
45
// params
43
46
baseParams , params , printVersion , printHelp , errs := param .ParseFromCli ()
44
- serverError .CheckFatal (errs ... )
47
+ if serverError .CheckError (errs ... ) {
48
+ return
49
+ }
45
50
if printVersion {
46
51
version .PrintVersion ()
47
- os . Exit ( 0 )
52
+ return
48
53
}
49
54
if printHelp {
50
55
param .PrintHelp ()
51
- os . Exit ( 0 )
56
+ return
52
57
}
53
58
54
59
// apply middlewares
55
60
errs = middleware .ApplyMiddlewares (baseParams , params )
56
- serverError .CheckFatal (errs ... )
57
-
58
- // setting
59
- setting := setting .ParseFromEnv ()
61
+ if serverError .CheckError (errs ... ) {
62
+ return
63
+ }
60
64
61
65
// override default theme
62
66
defaultTheme .DefaultTheme = localDefaultTheme .DefaultTheme
63
67
68
+ // settings
69
+ settings := setting .ParseFromEnv ()
70
+
71
+ // CPU profile
72
+ if len (settings .CPUProfileFile ) > 0 {
73
+ cpuProfileFile , err := src .StartCPUProfile (settings .CPUProfileFile )
74
+ if serverError .CheckError (err ) {
75
+ return
76
+ }
77
+ defer src .StopCPUProfile (cpuProfileFile )
78
+ }
79
+
64
80
// app
65
- appInst , errs := app .NewApp (baseParams , setting )
66
- serverError .CheckFatal (errs ... )
81
+ appInst , errs := app .NewApp (baseParams , settings )
82
+ if serverError .CheckError (errs ... ) {
83
+ return
84
+ }
67
85
if appInst == nil {
68
- serverError .CheckFatal (errors .New ("failed to create application instance" ))
86
+ serverError .CheckError (errors .New ("failed to create application instance" ))
87
+ return
69
88
}
70
89
71
90
cleanupOnEnd (appInst )
72
91
reopenLogOnHup (appInst )
73
92
errs = appInst .Open ()
74
- serverError .CheckFatal (errs ... )
75
- appInst .Shutdown ()
93
+ serverError .CheckError (errs ... )
76
94
}
0 commit comments