fathom/commands/commands.go

53 lines
1.5 KiB
Go

package commands
import (
"flag"
"github.com/dannyvankooten/ana/count"
"github.com/dannyvankooten/ana/db"
)
var (
runCreateUserCommand bool
runDeleteUserCommand bool
runStartServerCommand bool
runSeedDataCommand bool
runArchiveDataCommand bool
idArg int
emailArg string
passwordArg string
nArg int
portArg int
)
// Parse CLI arguments
func Parse() {
// parse commands
flag.BoolVar(&runCreateUserCommand, "create_user", false, "Create a new user")
flag.BoolVar(&runDeleteUserCommand, "delete_user", false, "Deletes a user")
flag.BoolVar(&runStartServerCommand, "start_server", true, "Start the API web server, listen on -port")
flag.BoolVar(&runSeedDataCommand, "db_seed", false, "Seed the database -n times")
flag.BoolVar(&runArchiveDataCommand, "archive_data", false, "Aggregates data into daily totals")
flag.StringVar(&emailArg, "email", "", "Email address")
flag.StringVar(&passwordArg, "password", "", "Password")
flag.IntVar(&idArg, "id", 0, "Object ID")
flag.IntVar(&nArg, "n", 0, "Number")
flag.IntVar(&portArg, "port", 8080, "Port")
flag.Parse()
}
// Run parsed CLI command. Defaults to starting the HTTP server.
func Run() {
if runCreateUserCommand {
createUser()
} else if runDeleteUserCommand {
deleteUser()
} else if runSeedDataCommand {
db.Seed(nArg)
} else if runArchiveDataCommand {
count.Archive()
} else if runStartServerCommand {
startServer(portArg)
}
}