Files
kor-elf-shield/internal/cmd/daemon/reopen_logger.go
Leonid Nikitin 859e7ad4da Add "reopen_logger" command to daemon for log file management
- Introduced `CmdReopenLogger` for reopening daemon log files.
- Added `ReOpen` method to `Logger` interface and its implementations.
- Updated daemon logic to handle the "reopen_logger" command via Unix socket communication.
- Extended localization files with translations for new command messages.
- Registered `CmdReopenLogger` in the main CLI application.
2025-11-02 22:41:39 +05:00

49 lines
1.1 KiB
Go

package daemon
import (
"context"
"errors"
"fmt"
"git.kor-elf.net/kor-elf-shield/kor-elf-shield/internal/i18n"
"git.kor-elf.net/kor-elf-shield/kor-elf-shield/internal/setting"
"git.kor-elf.net/kor-elf-shield/kor-elf-shield/internal/socket"
"github.com/urfave/cli/v3"
)
func CmdReopenLogger() *cli.Command {
return &cli.Command{
Name: "reopen_logger",
Usage: i18n.Lang.T("cmd.daemon.reopen_logger.Usage"),
Description: i18n.Lang.T("cmd.daemon.reopen_logger.Description"),
Action: cmdReopenLogger,
}
}
func cmdReopenLogger(_ context.Context, _ *cli.Command) error {
if setting.Config.SocketFile == "" {
return errors.New(i18n.Lang.T("socket file is not specified"))
}
sock, err := socket.NewSocketClient(setting.Config.SocketFile)
if err != nil {
return errors.New(i18n.Lang.T("daemon is not running"))
}
defer func() {
_ = sock.Close()
}()
result, err := sock.Send("reopen_logger")
if err != nil {
return err
}
if result != "ok" {
return errors.New(i18n.Lang.T("daemon is not reopening logger"))
}
fmt.Println("ok")
return nil
}