WIP: updated log level on some log entries and added environment variable expansion for command line and its arguments

This commit is contained in:
2025-05-26 17:17:20 +10:00
parent 2474d3cddf
commit 1827cf2e3e
14 changed files with 242 additions and 116 deletions

View File

@@ -18,11 +18,12 @@ func (i *Init) cron(wg *sync.WaitGroup, cron CronTask, exitFlag <-chan any) {
defer wg.Done()
var (
iwg *sync.WaitGroup
err error
stdout io.ReadCloser
stderr io.ReadCloser
cmd *exec.Cmd
iwg *sync.WaitGroup
err error
stdout io.ReadCloser
stderr io.ReadCloser
cmd *exec.Cmd
patchedEnv []string
)
ticker := time.NewTicker(time.Second * 30)
@@ -34,8 +35,9 @@ cron:
wingmate.Log().Error().Str(cronTag, cron.Name()).Msgf("%+v", err)
goto fail
}
cmd = exec.Command(cron.Command(), cron.Arguments()...)
cmd.Env = cron.PatchEnv(os.Environ())
patchedEnv = cron.PatchEnv(os.Environ())
cmd = exec.Command(cron.Command(patchedEnv...), cron.Arguments(patchedEnv...)...)
cmd.Env = patchedEnv
if len(cron.WorkingDir()) > 0 {
cmd.Dir = cron.WorkingDir()

View File

@@ -23,8 +23,8 @@ type TaskStatus interface {
type Task interface {
Name() string
Command() string
Arguments() []string
Command(...string) string
Arguments(...string) []string
EnvLen() int
Environ() []string
PatchEnv([]string) []string

View File

@@ -25,6 +25,7 @@ func (i *Init) service(wg *sync.WaitGroup, task ServiceTask, exitFlag <-chan any
stdout io.ReadCloser
failStatus bool
cmd *exec.Cmd
patchedEnv []string
)
defer func() {
@@ -39,8 +40,10 @@ service:
failStatus = true
goto fail
}
cmd = exec.Command(task.Command(), task.Arguments()...)
cmd.Env = task.PatchEnv(os.Environ())
patchedEnv = task.PatchEnv(os.Environ())
cmd = exec.Command(task.Command(patchedEnv...), task.Arguments(patchedEnv...)...)
cmd.Env = patchedEnv
if len(task.WorkingDir()) > 0 {
cmd.Dir = task.WorkingDir()
@@ -104,5 +107,5 @@ func (i *Init) pipeReader(wg *sync.WaitGroup, pipe io.ReadCloser, tag, serviceNa
wingmate.Log().Error().Str(tag, serviceName).Msgf("got error when reading pipe: %#v", err)
}
wingmate.Log().Info().Str(tag, serviceName).Msg("closing pipe")
wingmate.Log().Debug().Str(tag, serviceName).Msg("closing pipe")
}

View File

@@ -52,9 +52,9 @@ func (i *Init) sigTermPump(startTime time.Time, selfExit <-chan any) status {
t := time.NewTicker(time.Millisecond * 100)
defer t.Stop()
wingmate.Log().Info().Msg("start pumping SIGTERM signal")
wingmate.Log().Debug().Msg("start pumping SIGTERM signal")
defer func() {
wingmate.Log().Info().Msg("stop pumping SIGTERM signal")
wingmate.Log().Debug().Msg("stop pumping SIGTERM signal")
}()
for time.Since(startTime) < time.Duration(time.Second*4) {

View File

@@ -20,7 +20,7 @@ func (i *Init) waiter(wg *sync.WaitGroup, runningFlag <-chan any, sigHandlerFlag
defer wg.Done()
defer func() {
wingmate.Log().Info().Msg("waiter exiting...")
wingmate.Log().Debug().Msg("waiter exiting...")
}()
running = true
@@ -41,7 +41,7 @@ wait:
} else {
select {
case <-runningFlag:
wingmate.Log().Info().Msg("waiter received shutdown signal...")
wingmate.Log().Debug().Msg("waiter received shutdown signal...")
running = false
default:
}
@@ -55,14 +55,14 @@ wait:
if flagged {
close(sigHandlerFlag)
flagged = false
wingmate.Log().Warn().Msg("waiter: inner flag")
wingmate.Log().Debug().Msg("waiter: inner flag")
}
wingmate.Log().Warn().Msg("waiter: no child left")
wingmate.Log().Debug().Msg("waiter: no child left")
break wait
}
}
wingmate.Log().Warn().Msgf("Wait4 returns error: %+v", err)
wingmate.Log().Debug().Msgf("Wait4 returns error: %+v", err)
waitingForSignal = true
}
}