diff --git a/main.go b/main.go index 8de7c76..0c763b3 100644 --- a/main.go +++ b/main.go @@ -23,18 +23,41 @@ func main() { fmt.Printf("\nTotal pages checked: %d\n\n", checker.pagesChecked) if len(brokenLinks) == 0 { - fmt.Println("No broken links found!") + fmt.Println("No issues found!") return } - fmt.Printf("Found %d issues:\n", len(brokenLinks)) + // First list redirects + var redirectCount int for _, link := range brokenLinks { - if link.Error != "" { - fmt.Printf("- %s (Error: %s)\n", link.URL, link.Error) - } else if link.Redirect != nil { + if link.Redirect != nil { + if redirectCount == 0 { + fmt.Println("Redirects found:") + } fmt.Printf("- %s (Redirect %d -> %s)\n", link.URL, link.StatusCode, link.Redirect.ToURL) - } else { - fmt.Printf("- %s (Status: %d)\n", link.URL, link.StatusCode) + redirectCount++ } } + if redirectCount > 0 { + fmt.Println() + } + + // Then list broken links + var brokenCount int + for _, link := range brokenLinks { + if link.Redirect == nil { + if brokenCount == 0 { + fmt.Println("Broken links found:") + } + if link.Error != "" { + fmt.Printf("- %s (Error: %s)\n", link.URL, link.Error) + } else { + fmt.Printf("- %s (Status: %d)\n", link.URL, link.StatusCode) + } + brokenCount++ + } + } + + fmt.Printf("\nTotal issues: %d (%d redirects, %d broken)\n", + len(brokenLinks), redirectCount, brokenCount) }