package main import ( "bufio" "fmt" "os" ) func IsExistFile(path string) error { if _, err := os.Stat(path); os.IsNotExist(err) { message := fmt.Sprintf("File does not exist : %s", err) fmt.Println(message) os.Exit(1) } return nil } func CheckErrorFile(err error) error { if err != nil { message := fmt.Sprintf("Error creating file : %s", err) fmt.Println(message) os.Exit(1) } return nil } func main() { home := os.Getenv("HOME") orgFile := home + "/Documents/orgfiles/rss.org" newsboatFile := home + "/Config/private/newsboat/urls" IsExistFile(orgFile) data, err := os.Open(orgFile) CheckErrorFile(err) IsExistFile(newsboatFile) file, err := os.Create(newsboatFile) CheckErrorFile(err) var counter int lexer := Lexer{} scanner := bufio.NewScanner(data) for scanner.Scan() { counter++ // skip the first heading if counter == 1 { continue } tokens := lexer.Process(scanner.Text()) feed := Parse(tokens).String() file.WriteString(feed) } file.Close() data.Close() fmt.Printf("%d feed(s) written to the file (%s)\n", counter, newsboatFile) }