49 lines
977 B
Go
49 lines
977 B
Go
package main
|
|||
|
|
|
||
|
|
import (
|
||
|
|
"flag"
|
||
|
|
"log/slog"
|
||
|
|
"os"
|
||
|
|
|
||
|
|
"go.dev.pztrn.name/rsser/configuration"
|
||
|
|
"go.dev.pztrn.name/rsser/outputs"
|
||
|
|
"go.dev.pztrn.name/rsser/outputs/nntp"
|
||
|
|
"go.dev.pztrn.name/rsser/outputs/stdout"
|
||
|
|
"go.dev.pztrn.name/rsser/rss"
|
||
|
|
)
|
||
|
|
|
||
|
|
var configPath string
|
||
|
|
|
||
|
|
func main() {
|
||
|
|
slog.Info("Starting parsing RSS feeds...")
|
||
|
|
|
||
|
|
flag.StringVar(&configPath, "config", "", "Full path to configuration file.")
|
||
|
|
|
||
|
|
flag.Parse()
|
||
|
|
|
||
|
|
cfg, err := configuration.New(configPath)
|
||
|
|
if err != nil {
|
||
|
|
slog.Error("Failed to create config controller!", "error", err.Error())
|
||
|
|
os.Exit(1)
|
||
|
|
}
|
||
|
|
|
||
|
|
outs := make([]outputs.Output, 0, 1)
|
||
|
|
outs = append(outs, stdout.New())
|
||
|
|
|
||
|
|
nntpClient, err := nntp.New(cfg)
|
||
|
|
if err != nil {
|
||
|
|
slog.Error("Failed to initialize NNTP outputter!", "error", err.Error())
|
||
|
|
os.Exit(1)
|
||
|
|
}
|
||
|
|
|
||
|
|
outs = append(outs, nntpClient)
|
||
|
|
|
||
|
|
rsser, err := rss.New(cfg, outs)
|
||
|
|
if err != nil {
|
||
|
|
slog.Error("Failed to create RSS controller!", "error", err.Error())
|
||
|
|
os.Exit(1)
|
||
|
|
}
|
||
|
|
|
||
|
|
rsser.Parse()
|
||
|
|
}
|