fix: address functionality gaps identified in code review

- Wire up --config/-f flag to actually load custom config files
  - Move config loading to PersistentPreRunE in root.go
  - Simplify main.go to just call cmd.Execute()
  - Move Playwright init to web command's PreRunE/PostRunE

- Remove unused functions from cmd/web.go (~90 lines of dead code)
  - Remove writeSingleFile, writeMultipleFiles, generateDefaultFilename
  - Remove scrapeURL, extractAndConvertContent, testExtractAndConvertContent
  - Remove unused mock function from web_test.go

- Add OutputType validation to Config.Validate()
  - Only allow "single", "separate", or empty string
  - Add test cases for valid and invalid output types
This commit is contained in:
Claude
2025-11-27 16:05:42 +00:00
parent 09608cf073
commit ff13012408
6 changed files with 68 additions and 129 deletions

29
main.go
View File

@@ -2,40 +2,13 @@ package main
import (
"fmt"
"log"
"os"
"github.com/tnypxl/rollup/cmd"
"github.com/tnypxl/rollup/internal/config"
"github.com/tnypxl/rollup/internal/scraper"
)
func main() {
// Check if the command is "help"
isHelpCommand := len(os.Args) > 1 && (os.Args[1] == "help" || os.Args[1] == "--help" || os.Args[1] == "-h")
var cfg *config.Config
var err error
if !isHelpCommand {
configPath := "rollup.yml"
cfg, err = config.Load(configPath)
if err != nil {
log.Printf("Warning: Failed to load configuration: %v", err)
// Continue execution without a config file
}
// Initialize the scraper logger with default verbosity (false)
scraper.SetupLogger(false)
err = scraper.InitPlaywright()
if err != nil {
log.Fatalf("Failed to initialize Playwright: %v", err)
}
defer scraper.ClosePlaywright()
}
if err := cmd.Execute(cfg); err != nil {
if err := cmd.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}