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), + } +} +