package main

import (
	"github.com/mblarsen/gitschwifty/command"
	"github.com/mitchellh/cli"
)

func Commands(meta *command.Meta) map[string]cli.CommandFactory {
	return map[string]cli.CommandFactory{
		"begin": func() (cli.Command, error) {
			return &command.BeginCommand{
				Meta: *meta,
			}, nil
		},
		"end": func() (cli.Command, error) {
			return &command.EndCommand{
				Meta: *meta,
			}, nil
		},
		"next": func() (cli.Command, error) {
			return &command.NextCommand{
				Meta: *meta,
			}, nil
		},
		"prev": func() (cli.Command, error) {
			return &command.PrevCommand{
				Meta: *meta,
			}, nil
		},
		"current": func() (cli.Command, error) {
			return &command.CurrentCommand{
				Meta: *meta,
			}, nil
		},

		"version": func() (cli.Command, error) {
			return &command.VersionCommand{
				Meta:     *meta,
				Version:  Version,
				Revision: GitCommit,
				Name:     Name,
			}, nil
		},
	}
}
