89 lines
1.3 KiB
Go
89 lines
1.3 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"bufio"
|
||
|
"fmt"
|
||
|
"os"
|
||
|
"runtime/debug"
|
||
|
|
||
|
"../query_gen/lib"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
scanner := bufio.NewScanner(os.Stdin)
|
||
|
|
||
|
// Capture panics instead of closing the window at a superhuman speed before the user can read the message on Windows
|
||
|
defer func() {
|
||
|
r := recover()
|
||
|
if r != nil {
|
||
|
fmt.Println(r)
|
||
|
debug.PrintStack()
|
||
|
pressAnyKey(scanner)
|
||
|
return
|
||
|
}
|
||
|
}()
|
||
|
|
||
|
err := patcher(scanner)
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func pressAnyKey(scanner *bufio.Scanner) {
|
||
|
fmt.Println("Please press enter to exit...")
|
||
|
for scanner.Scan() {
|
||
|
_ = scanner.Text()
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func patcher(scanner *bufio.Scanner) error {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
/*func eachUserQuick(handle func(int)) error {
|
||
|
stmt, err := qgen.Builder.Select("users").Orderby("uid desc").Limit(1).Prepare()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
var topID int
|
||
|
err := stmt.QueryRow(topID)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
for i := 1; i <= topID; i++ {
|
||
|
err = handle(i)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
}*/
|
||
|
|
||
|
func eachUser(handle func(int)) error {
|
||
|
stmt, err := qgen.Builder.Select("users").Prepare()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
rows, err := stmt.Query()
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
defer rows.Close()
|
||
|
|
||
|
for rows.Next() {
|
||
|
var uid int
|
||
|
err := rows.Scan(&uid)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
err = handle(uid)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
}
|
||
|
return rows.Err()
|
||
|
}
|