@@ -82,6 +82,18 @@ func (r *Rouse) getName() string {
8282 return replacer .Replace (name )
8383}
8484
85+ // reportError 统一处理错误输出:记录日志并输出到 stderr
86+ func reportError (msg string ) {
87+ global .LOG .Error (msg )
88+ fmt .Fprintf (os .Stderr , "Error: %s\n " , msg )
89+ }
90+
91+ // reportErrorf 格式化错误消息并统一处理
92+ func reportErrorf (format string , args ... interface {}) {
93+ msg := fmt .Sprintf (format , args ... )
94+ reportError (msg )
95+ }
96+
8597func removeCurRdpVncFile () {
8698 re := regexp .MustCompile (`(?i)\.(rdp|vncpaxx)$` )
8799 dir , _ := os .UserConfigDir ()
@@ -101,82 +113,60 @@ func (r *Rouse) HandleRDP(appConfig *config.AppConfig) {
101113 filePath := filepath .Join (dir , "jumpserver-client" , replacer .Replace (fileName )+ ".rdp" )
102114 err := ioutil .WriteFile (filePath , []byte (r .Content ), os .ModePerm )
103115 if err != nil {
104- errorMsg := err .Error ()
105- global .LOG .Error (errorMsg )
106- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
116+ reportError (err .Error ())
107117 return
108118 }
109119 cmd := handleRDP (r , filePath , appConfig )
110120 if cmd != nil {
111121 if err := cmd .Run (); err != nil {
112- errorMsg := fmt .Sprintf ("Failed to execute RDP application: %v" , err )
113- global .LOG .Error (errorMsg )
114- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
122+ reportErrorf ("Failed to execute RDP application: %v" , err )
115123 }
116124 } else {
117- errorMsg := "No RDP application configured or found"
118- global .LOG .Error (errorMsg )
119- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
125+ reportError ("No RDP application configured or found" )
120126 }
121127}
122128
123129func (r * Rouse ) HandleVNC (appConfig * config.AppConfig ) {
124130 cmd := handleVNC (r , appConfig )
125131 if cmd != nil {
126132 if err := cmd .Run (); err != nil {
127- errorMsg := fmt .Sprintf ("Failed to execute VNC application: %v" , err )
128- global .LOG .Error (errorMsg )
129- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
133+ reportErrorf ("Failed to execute VNC application: %v" , err )
130134 }
131135 } else {
132- errorMsg := "No VNC application configured or found"
133- global .LOG .Error (errorMsg )
134- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
136+ reportError ("No VNC application configured or found" )
135137 }
136138}
137139
138140func (r * Rouse ) HandleSSH (appConfig * config.AppConfig ) {
139141 cmd := handleSSH (r , appConfig )
140142 if cmd != nil {
141143 if err := cmd .Run (); err != nil {
142- errorMsg := fmt .Sprintf ("Failed to execute SSH application: %v" , err )
143- global .LOG .Error (errorMsg )
144- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
144+ reportErrorf ("Failed to execute SSH application: %v" , err )
145145 }
146146 } else {
147- errorMsg := "No SSH application configured or found"
148- global .LOG .Error (errorMsg )
149- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
147+ reportError ("No SSH application configured or found" )
150148 }
151149}
152150
153151func (r * Rouse ) HandleDB (appConfig * config.AppConfig ) {
154152 cmd := handleDB (r , appConfig )
155153 if cmd != nil {
156154 if err := cmd .Run (); err != nil {
157- errorMsg := fmt .Sprintf ("Failed to execute database application: %v" , err )
158- global .LOG .Error (errorMsg )
159- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
155+ reportErrorf ("Failed to execute database application: %v" , err )
160156 }
161157 } else {
162- errorMsg := "No database application configured or found"
163- global .LOG .Error (errorMsg )
164- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
158+ reportError ("No database application configured or found" )
165159 }
166160}
167161
168162func (r * Rouse ) HandleCommand (appConfig * config.AppConfig ) {
169163 cmd := handleCommand (r , appConfig )
170164 if cmd != nil {
171165 if err := cmd .Run (); err != nil {
172- errorMsg := fmt .Sprintf ("Failed to execute command: %v" , err )
173- global .LOG .Error (errorMsg )
174- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
166+ reportErrorf ("Failed to execute command: %v" , err )
175167 }
176168 } else {
177- errorMsg := "No command application configured or found"
178- global .LOG .Error (errorMsg )
179- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
169+ reportError ("No command application configured or found" )
180170 }
181171}
182172
@@ -194,9 +184,7 @@ func (r *Rouse) Run() {
194184 case "mysql" , "mariadb" , "postgresql" , "redis" , "oracle" , "sqlserver" , "mongodb" :
195185 r .HandleDB (& appConfig )
196186 default :
197- errorMsg := fmt .Sprintf ("Unsupported protocol: %s" , protocol )
198- global .LOG .Error (errorMsg )
199- fmt .Fprintf (os .Stderr , "Error: %s\n " , errorMsg )
187+ reportErrorf ("Unsupported protocol: %s" , protocol )
200188 }
201189 } else {
202190 r .HandleCommand (& appConfig )
0 commit comments