diff options
author | Joop Kiefte <ikojba@gmail.com> | 2020-09-29 23:46:50 +0200 |
---|---|---|
committer | Joop Kiefte <ikojba@gmail.com> | 2020-09-29 23:46:50 +0200 |
commit | eb7108d91db786ebda22a8b3fcc6fa6c038d3318 (patch) | |
tree | 39f108698443f98619040ecc362d13bd776363db /main.go |
Initial commit
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -0,0 +1,40 @@ +package main + +import ( + "database/sql" + "fmt" + "time" + "math/rand" + "os" + + _ "modernc.org/sqlite" +) + +func main() { + rand.Seed(time.Now().UnixNano()) + db, err := sql.Open("sqlite", "prayers.db") + if err != nil { + fmt.Println("put prayers.db alongside the binary: "+ err.Error()) + os.Exit(1) + } + langcode := "en" + if len(os.Args) > 1 { + langcode = os.Args[1] + } + rows, err := db.Query("select text, author from prayers where language = ?", langcode) + if err != nil { + fmt.Println("database query failed: " +err.Error()) + os.Exit(2) + } + var prayers []string + for rows.Next() { + var prayer, author string + rows.Scan(&prayer, &author) + prayers = append(prayers, prayer+"\n\n-- "+author) + } + if len(prayers) < 1 { + fmt.Println("query returns no prayers") + os.Exit(3) + } + fmt.Println(prayers[rand.Intn(len(prayers))]) +} |