func (a *ArgParser) parseConfigureCmd(s cmd.StorageProvider) (*cmd.ConfigureCmd, error) {
	return &cmd.ConfigureCmd{
		Input: NewStdin(),
		Store: s,
	}, nil
}
parseConfigureCmd parses and returns a ConfigureCmd.
package cli
import (
	"flag"
	"github.com/KyleBanks/commuter/cmd"
	"github.com/KyleBanks/commuter/pkg/geo"
)
type ArgParser struct {
	Args []string
}
func NewArgParser(args []string) *ArgParser {
	return &ArgParser{
		Args: args,
	}
}
func (a *ArgParser) Parse(conf *cmd.Configuration, s cmd.StorageProvider) (cmd.RunnerValidator, error) {
	if conf == nil || len(a.Args) == 0 {
		return a.parseConfigureCmd(s)
	}
	switch a.Args[0] {
	case cmdAdd:
		return a.parseAddCmd(s, a.Args[1:])
	case cmdList:
		return a.parseListCmd(s, a.Args[1:])
	}
	return a.parseCommuteCmd(conf, a.Args)
}