@@ -4,25 +4,35 @@ import (
44 "crypto/tls"
55 "fmt"
66 "net/url"
7+ "os"
8+ "runtime"
79 "time"
810
911 "github.com/NodePassProject/cert"
1012 "github.com/NodePassProject/logs"
1113 "github.com/yosebyte/nodepass/internal"
1214)
1315
14- // runCore 运行核心
15- func runCore (parsedURL * url.URL ) {
16+ // start 启动核心逻辑
17+ func start (args []string ) error {
18+ if len (args ) != 2 {
19+ return fmt .Errorf ("start: empty URL command" )
20+ }
21+
22+ parsedURL , err := url .Parse (args [1 ])
23+ if err != nil {
24+ return fmt .Errorf ("start: parse URL failed: %v" , err )
25+ }
26+
1627 logger := initLogger (parsedURL .Query ().Get ("log" ))
1728
1829 core , err := createCore (parsedURL , logger )
1930 if err != nil {
20- logger .Error ("Core init failed: %v" , err )
21- printExitInfo ()
22- return
31+ return fmt .Errorf ("start: create core failed: %v" , err )
2332 }
2433
2534 core .Run ()
35+ return nil
2636}
2737
2838// initLogger 初始化日志记录器
@@ -44,8 +54,6 @@ func initLogger(level string) *logs.Logger {
4454 logger .SetLogLevel (logs .Event )
4555 logger .Event ("Init log level: EVENT" )
4656 default :
47- logger .SetLogLevel (logs .Info )
48- logger .Info ("Init log level: INFO" )
4957 }
5058 return logger
5159}
@@ -134,3 +142,40 @@ func getTLSProtocol(parsedURL *url.URL, logger *logs.Logger) (string, *tls.Confi
134142 return "0" , nil
135143 }
136144}
145+
146+ // exit 退出程序并显示帮助信息
147+ func exit (err error ) {
148+ errMsg1 , errMsg2 := "" , ""
149+ if err != nil {
150+ errStr := "FAILED: " + err .Error ()
151+ if len (errStr ) > 35 {
152+ errMsg1 = errStr [:35 ]
153+ if len (errStr ) > 70 {
154+ errMsg2 = errStr [35 :67 ] + "..."
155+ } else {
156+ errMsg2 = errStr [35 :]
157+ }
158+ } else {
159+ errMsg1 = errStr
160+ }
161+ }
162+ fmt .Printf (`
163+ ╭─────────────────────────────────────╮
164+ │ ░░█▀█░█▀█░░▀█░█▀▀░█▀█░█▀█░█▀▀░█▀▀░░ │
165+ │ ░░█░█░█░█░█▀█░█▀▀░█▀▀░█▀█░▀▀█░▀▀█░░ │
166+ │ ░░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀░░ │
167+ ├─────────────────────────────────────┤
168+ │%*s │
169+ │%*s │
170+ ├─────────────────────────────────────┤
171+ │ server://password@host/host?<query> │
172+ │ client://password@host/host?<query> │
173+ │ master://hostname:port/path?<query> │
174+ ├─────────────────────────────────────┤
175+ │ %-35s │
176+ │ %-35s │
177+ ╰─────────────────────────────────────╯
178+
179+ ` , 36 , version , 36 , fmt .Sprintf ("%s/%s" , runtime .GOOS , runtime .GOARCH ), errMsg1 , errMsg2 )
180+ os .Exit (1 )
181+ }
0 commit comments