feat: add base daemon cli command
Some checks failed
CI.yml / build (push) Failing after 1m37s

This commit is contained in:
d3m0k1d
2026-01-13 21:28:16 +03:00
parent 17faaa5c27
commit 2d699af630
3 changed files with 41 additions and 2 deletions

View File

@@ -5,6 +5,10 @@ import (
"os"
"github.com/d3m0k1d/BanForge/internal/config"
_ "github.com/d3m0k1d/BanForge/internal/judge"
"github.com/d3m0k1d/BanForge/internal/logger"
"github.com/d3m0k1d/BanForge/internal/parser"
_ "github.com/d3m0k1d/BanForge/internal/storage"
"github.com/spf13/cobra"
)
@@ -44,6 +48,32 @@ var initCmd = &cobra.Command{
},
}
var daemonCmd = &cobra.Command{
Use: "daemon",
Short: "Run BanForge daemon process",
Run: func(cmd *cobra.Command, args []string) {
log := logger.New(false)
log.Info("Starting BanForge daemon")
//db, err := storage.NewDB()
//if err != nil {
//log.Error("Failed to create database", "error", err)
//}
cfg, err := config.LoadConfig()
if err != nil {
log.Error("Failed to load config", "error", err)
}
for service := range cfg.Service {
if cfg.Service[service].Enabled && cfg.Service[service].Name != "nginx" {
pars, err := parser.NewScanner(cfg.Service[service].LogPath)
if err != nil {
log.Error("Failed to create parser", "error", err)
}
go pars.Start()
}
}
},
}
func Init() {
}

View File

@@ -117,3 +117,12 @@ func FindFirewall() error {
return fmt.Errorf("firewall not found")
}
func LoadConfig() (*Config, error) {
cfg := &Config{}
_, err := toml.DecodeFile("/etc/banforge/config.toml", cfg)
if err != nil {
return nil, fmt.Errorf("failed to decode config: %w", err)
}
return cfg, nil
}

View File

@@ -13,8 +13,8 @@ type Service struct {
}
type Config struct {
Firewall Firewall `toml:"firewall"`
Service Service `toml:"service"`
Firewall Firewall `toml:"firewall"`
Service []Service `toml:"service"`
}
// Rules