@@ -96,8 +96,7 @@ func Before(cfg Config) func(ctx context.Context) (func(), error) {
9696
9797func Run (cfg Config ) func (ctx context.Context ) error {
9898 return func (ctx context.Context ) (err error ) {
99- slog .InfoContext (ctx , "app start" )
100- defer slog .InfoContext (ctx , "app done" )
99+ defer log .LogDone (ctx , slog .LevelInfo , "xlp" , & err )
101100
102101 ctx , cancel := context .WithCancelCause (ctx )
103102 defer cancel (fmt .Errorf ("done" ))
@@ -114,27 +113,8 @@ func Run(cfg Config) func(ctx context.Context) error {
114113
115114 envs := mockEnv (dirData [0 ], strings .Join (dirDownload , ":" ))
116115
117- webStart := func (c * cmdx.Cmd ) error {
118- if cfg .Debug {
119- cmdx .Exec (ctx ,
120- FILE_PAN_XUNLEI_CLI ,
121- cmdx .Dir (DIR_SYNOPKG_WORK ),
122- cmdx .Env (append (os .Environ (), "LD_TRACE_LOADED_OBJECTS=1" )),
123- cmdx .LineErr (logPan (ctx , "[test] " )), cmdx .LineOut (logPan (ctx , "[test]* " )),
124- )
125- }
126- utils .BackExec (func () {
127- if err := webRun (ctx , envs , cfg ); err != nil {
128- cancel (err )
129- } else {
130- cancel (fmt .Errorf ("web done" ))
131- }
132- })
133- return nil
134- }
135-
136116 return cmdx .Exec (
137- log .Prefix (ctx , "vms " ),
117+ log .Prefix (ctx , "exec " ),
138118 FILE_PAN_XUNLEI_CLI ,
139119 cmdx .Flags (
140120 "-launcher_listen" , "unix://" + SOCK_LAUNCHER_LISTEN ,
@@ -146,14 +126,32 @@ func Run(cfg Config) func(ctx context.Context) error {
146126 cmdx .Env (envs ),
147127 cmdx .LineErr (logPan (ctx , "[stderr] " )),
148128 cmdx .LineOut (logPan (ctx , "[stdout] " )),
149- cmdx .OnStarted (webStart ),
129+ cmdx .PreStart (func (c * cmdx.Cmd ) error {
130+ return cmdx .Exec (ctx ,
131+ FILE_PAN_XUNLEI_CLI ,
132+ cmdx .Dir (DIR_SYNOPKG_WORK ),
133+ cmdx .Env (append (os .Environ (), "LD_TRACE_LOADED_OBJECTS=1" )),
134+ cmdx .LineErr (logPan (ctx , "[test] " )), cmdx .LineOut (logPan (ctx , "[test]* " )),
135+ )
136+ }),
137+ cmdx .OnStarted (func (c * cmdx.Cmd ) error {
138+ done := utils .BackExec (func () {
139+ if err := webRun (ctx , envs , cfg ); err != nil {
140+ cancel (err )
141+ }
142+ })
143+ utils .After (done , func () { cancel (fmt .Errorf ("web done" )) })
144+ return nil
145+ }),
150146 cmdx .OnExit (func (c * cmdx.Cmd ) error { return cleanExit (DIR_VAR ) }),
151147 )
152148 }
153149}
154150
155151func webRun (ctx context.Context , env []string , cfg Config ) (err error ) {
156152 ctx = log .Prefix (ctx , "web" )
153+ defer log .LogDone (ctx , slog .LevelInfo , "web" , & err )
154+
157155 mux := web .NewMux ()
158156 mux .Recoverer ()
159157
0 commit comments