From a8c8be8fc5cf51a879fd4141cad6c3de8942c2a1 Mon Sep 17 00:00:00 2001 From: netscrawler <128107374+netscrawler@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:18:09 +0300 Subject: [PATCH 1/3] Create go.yml --- .github/workflows/go.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml new file mode 100644 index 0000000..5d7b40e --- /dev/null +++ b/.github/workflows/go.yml @@ -0,0 +1,28 @@ +# This workflow will build a golang project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go + +name: Go + +on: + push: + branches: [ "dev" ] + pull_request: + branches: [ "dev" ] + +jobs: + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.20' + + - name: Build + run: go build -v ./... + + - name: Test + run: go test -v ./... From 2df9de9bfea37fb08407c311c3f64a640b797d57 Mon Sep 17 00:00:00 2001 From: netscrawler <128107374+netscrawler@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:19:37 +0300 Subject: [PATCH 2/3] Delete internal/lib/logger directory --- .../handlers/slogdiscard/slogdiscard.go | 36 ------- .../logger/handlers/slogpretty/slogpretty.go | 98 ------------------- internal/lib/logger/sl/sl.go | 12 --- 3 files changed, 146 deletions(-) delete mode 100644 internal/lib/logger/handlers/slogdiscard/slogdiscard.go delete mode 100644 internal/lib/logger/handlers/slogpretty/slogpretty.go delete mode 100644 internal/lib/logger/sl/sl.go diff --git a/internal/lib/logger/handlers/slogdiscard/slogdiscard.go b/internal/lib/logger/handlers/slogdiscard/slogdiscard.go deleted file mode 100644 index 1488376..0000000 --- a/internal/lib/logger/handlers/slogdiscard/slogdiscard.go +++ /dev/null @@ -1,36 +0,0 @@ -package slogdiscard - -import ( - "context" - "golang.org/x/exp/slog" -) - -func NewDiscardLogger() *slog.Logger { - return slog.New(NewDiscardHandler()) -} - -type DiscardHandler struct{} - -func NewDiscardHandler() *DiscardHandler { - return &DiscardHandler{} -} - -func (h *DiscardHandler) Handle(_ context.Context, _ slog.Record) error { - // Просто игнорируем запись журнала - return nil -} - -func (h *DiscardHandler) WithAttrs(_ []slog.Attr) slog.Handler { - // Возвращает тот же обработчик, так как нет атрибутов для сохранения - return h -} - -func (h *DiscardHandler) WithGroup(_ string) slog.Handler { - // Возвращает тот же обработчик, так как нет группы для сохранения - return h -} - -func (h *DiscardHandler) Enabled(_ context.Context, _ slog.Level) bool { - // Всегда возвращает false, так как запись журнала игнорируется - return false -} diff --git a/internal/lib/logger/handlers/slogpretty/slogpretty.go b/internal/lib/logger/handlers/slogpretty/slogpretty.go deleted file mode 100644 index f298f2f..0000000 --- a/internal/lib/logger/handlers/slogpretty/slogpretty.go +++ /dev/null @@ -1,98 +0,0 @@ -package slogpretty - -import ( - "context" - "encoding/json" - "io" - stdLog "log" - "log/slog" - - "github.com/fatih/color" -) - -type PrettyHandlerOptions struct { - SlogOpts *slog.HandlerOptions -} - -type PrettyHandler struct { - opts PrettyHandlerOptions - slog.Handler - l *stdLog.Logger - attrs []slog.Attr -} - -func (opts PrettyHandlerOptions) NewPrettyHandler( - out io.Writer, -) *PrettyHandler { - h := &PrettyHandler{ - Handler: slog.NewJSONHandler(out, opts.SlogOpts), - l: stdLog.New(out, "", 0), - } - - return h -} - -func (h *PrettyHandler) Handle(_ context.Context, r slog.Record) error { - level := r.Level.String() + ":" - - switch r.Level { - case slog.LevelDebug: - level = color.MagentaString(level) - case slog.LevelInfo: - level = color.BlueString(level) - case slog.LevelWarn: - level = color.YellowString(level) - case slog.LevelError: - level = color.RedString(level) - } - - fields := make(map[string]interface{}, r.NumAttrs()) - - r.Attrs(func(a slog.Attr) bool { - fields[a.Key] = a.Value.Any() - - return true - }) - - for _, a := range h.attrs { - fields[a.Key] = a.Value.Any() - } - - var b []byte - var err error - - if len(fields) > 0 { - b, err = json.MarshalIndent(fields, "", " ") - if err != nil { - return err - } - } - - timeStr := r.Time.Format("[15:05:05.000]") - msg := color.CyanString(r.Message) - - h.l.Println( - timeStr, - level, - msg, - color.WhiteString(string(b)), - ) - - return nil -} - -func (h *PrettyHandler) WithAttrs(attrs []slog.Attr) slog.Handler { - return &PrettyHandler{ - Handler: h.Handler, - l: h.l, - attrs: attrs, - } -} - -func (h *PrettyHandler) WithGroup(name string) slog.Handler { - // TODO: implement - return &PrettyHandler{ - Handler: h.Handler.WithGroup(name), - l: h.l, - } -} diff --git a/internal/lib/logger/sl/sl.go b/internal/lib/logger/sl/sl.go deleted file mode 100644 index b9fa762..0000000 --- a/internal/lib/logger/sl/sl.go +++ /dev/null @@ -1,12 +0,0 @@ -package sl - -import ( - "log/slog" -) - -func Err(err error) slog.Attr { - return slog.Attr{ - Key: "error", - Value: slog.StringValue(err.Error()), - } -} From 9b8c565f2f8fd2aaa6694119152596a1de8758b0 Mon Sep 17 00:00:00 2001 From: netscrawler <128107374+netscrawler@users.noreply.github.com> Date: Sat, 6 Jul 2024 05:27:26 +0300 Subject: [PATCH 3/3] Delete .github/workflows directory --- .github/workflows/go.yml | 28 ---------------------------- 1 file changed, 28 deletions(-) delete mode 100644 .github/workflows/go.yml diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml deleted file mode 100644 index 5d7b40e..0000000 --- a/.github/workflows/go.yml +++ /dev/null @@ -1,28 +0,0 @@ -# This workflow will build a golang project -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go - -name: Go - -on: - push: - branches: [ "dev" ] - pull_request: - branches: [ "dev" ] - -jobs: - - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: '1.20' - - - name: Build - run: go build -v ./... - - - name: Test - run: go test -v ./...