M axolotl/user.go => axolotl/user.go +1 -1
@@ 36,7 36,7 @@ func GetUserBySession(token string) (User, error) {
// Get a user from the database by name. Used for the CLI interface.
func GetUserByName(name string) (User, error) {
var user User
- err := db.Select(&user, "SELECT * FROM users WHERE username=$1", name)
+ err := db.Get(&user, "SELECT * FROM users WHERE username=$1", name)
return user, err
}
M main.go => main.go +22 -11
@@ 8,31 8,42 @@ import (
"git.sr.ht/~abyxcos/axolotlfeeds/axolotl"
)
+// Commandline flags
+var (
+ userFlag = flag.String("u", "", "Database username. Defaults to the first user created.")
+ dbFlag = flag.String("db", "axolotl.db", "Database file for all users and feeds.")
+)
+
func main() {
var err error
+
+ // Parse any flags we were passed
flag.Parse()
+
args := flag.Args()
+ if len(args) < 1 {
+ flag.PrintDefaults()
+ return
+ }
- _, err = os.Stat("axolotl.db")
+ _, err = os.Stat(*dbFlag)
if err != nil {
panic("Error: Database does not exist")
}
- err = axolotl.Open("axolotl.db")
+ err = axolotl.Open(*dbFlag)
if err != nil {
panic(fmt.Errorf("Error opening database: %w", err))
}
- var cmd string
- var user axolotl.User
- if len(args) > 2 {
- cmd = args[1]
- user, err = axolotl.GetUserByName(flag.Arg(0))
- if err != nil {
- panic(fmt.Errorf("User does not exist: %w", err))
- }
+ if *userFlag == "" {
+ panic("Please specify a user")
+ }
+ user, err := axolotl.GetUserByName(*userFlag)
+ if err != nil {
+ panic(fmt.Errorf("User does not exist: %w", err))
}
-
+ cmd := flag.Arg(0)
switch cmd {
case "list":
if len(args) > 2 {