62 lines
1.1 KiB
Go
62 lines
1.1 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)
|
|
|
|
for scanner.Scan() {
|
|
counter++
|
|
|
|
// skip the first heading
|
|
if counter == 1 {
|
|
continue
|
|
}
|
|
|
|
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)
|
|
}
|