package main

import (
	"fmt"

	"github.com/codegangsta/cli"
	"github.com/drone/drone/client"
)

// NewReposCommand returns the CLI command for "repos".
func NewReposCommand() cli.Command {
	return cli.Command{
		Name:  "repos",
		Usage: "lists active remote repositories",
		Flags: []cli.Flag{
			cli.BoolFlag{
				Name:  "a, all",
				Usage: "list all repositories",
			},
		},
		Action: func(c *cli.Context) {
			handle(c, reposCommandFunc)
		},
	}
}

// reposCommandFunc executes the "repos" command.
func reposCommandFunc(c *cli.Context, client *client.Client) error {
	repos, err := client.Repos.List()
	if err != nil {
		return err
	}

	var all = c.Bool("a")
	for _, repo := range repos {
		if !all && !repo.Active {
			continue
		}

		fmt.Printf("%s/%s/%s\n", repo.Host, repo.Owner, repo.Name)
	}
	return nil
}