1
0
Files
org2newsboat/main.go
2021-08-25 10:15:18 +02:00

65 lines
1.2 KiB
Go

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)
// skip the first heading
scanner.Scan()
for scanner.Scan() {
// skip commented headings
if scanner.Text()[3:10] == "COMMENT" {
continue
}
counter++
tokens := lexer.Process(scanner.Text())
feed := Parse(tokens).String()
file.WriteString(feed + "\n")
}
file.Close()
data.Close()
fmt.Printf("%d feed(s) written to the file (%s)\n", counter, newsboatFile)
}