~abyxcos/axolotlfeeds

d10e1b0ff628c0bfb3541a3db4189f04527db46b — abyxcos 1 year, 11 months ago fc3a875
Add a few flags and make the CLI slightly less icky.
2 files changed, 23 insertions(+), 12 deletions(-)

M axolotl/user.go
M main.go
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 {