From 2ac31f49afc136c681c617c5a4bff2e9081ce1c0 Mon Sep 17 00:00:00 2001 From: d3m0k1d Date: Sun, 4 Jan 2026 18:42:41 +0300 Subject: [PATCH] Add Makefile and main.go in cli tools, base logger --- Makefile | 27 +++++++++++++++++++++++++++ cmd/banforge/main.go | 30 ++++++++++++++++++++++++++++++ local/logger/logger.go | 27 +++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 Makefile create mode 100644 cmd/banforge/main.go create mode 100644 local/logger/logger.go diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..40b1f06 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +.PHONY: build build-daemon build-tui clean help + +help: + @echo "BanForge build targets:" + @echo " make build - Build both daemon and TUI" + @echo " make build-daemon - Build only daemon" + @echo " make build-tui - Build only TUI" + @echo " make clean - Remove binaries" + @echo " make test - Run tests" + +build: build-daemon build-tui + @echo "✅ Build complete!" + +build-daemon: + @mkdir -p bin + go mod tidy + go build -o bin/banforge ./cmd/banforge + +build-tui: + @mkdir -p bin + go build -o bin/banforge-tui ./cmd/banforge-tui + +clean: + rm -rf bin/ + +test: + go test ./... diff --git a/cmd/banforge/main.go b/cmd/banforge/main.go new file mode 100644 index 0000000..974524e --- /dev/null +++ b/cmd/banforge/main.go @@ -0,0 +1,30 @@ +package main + +import ( + "fmt" + "github.com/spf13/cobra" + "os" +) + +var rootCmd = &cobra.Command{ + Use: "banforge", + Short: "IPS log-based written on Golang", + Run: func(cmd *cobra.Command, args []string) { + + }, +} + +func Init() { + +} + +func Execute() { + if err := rootCmd.Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } +} + +func main() { + Execute() +} diff --git a/local/logger/logger.go b/local/logger/logger.go new file mode 100644 index 0000000..288b850 --- /dev/null +++ b/local/logger/logger.go @@ -0,0 +1,27 @@ +package logger + +import ( + "log/slog" + "os" +) + +type Logger struct { + *slog.Logger +} + +func New(debug bool) *Logger { + var level slog.Level + if debug { + level = slog.LevelDebug + } else { + level = slog.LevelInfo + } + handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{ + Level: level, + }) + + return &Logger{ + Logger: slog.New(handler), + } +} +