cmd

package
v0.0.0-...-5a42244 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2018 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BaseCommandGet         = "get"
	BaseCommandImport      = "import"
	BaseCommandDescribe    = "describe"
	CoordinatorFlagName    = "coordinator"
	TimeOut                = 10 * time.Second
	MaxRecvMsgSize         = 1024 * 1024 * 20
	MaxConcurrentFlag      = "max-concurrent"
	MaxConcurrentShortFlag = "mc"
	FileFlag               = "file"
	FileShortFlag          = "f"
	FileFlagUsage          = "Reads a list of projects from a file"
)

Variables

View Source
var (
	MissingProjectNameArgErr = cli.NewExitError("Missing project name.", 1)
	MissingVCSTypeArgErr     = cli.NewExitError("Missing vcs type.", 1)
	MissingRemoteURLErr      = cli.NewExitError("Missing vcs remote url.", 1)
	UnsupportedVCSTypeErr    = cli.NewExitError("Unsupported vcs type.", 1)
	ProjectNotFoundErr       = cli.NewExitError("No Project(s) can be found.", 1)
	MalformedRemoteVcsURLErr = cli.NewExitError("Unable to detect vcs from remote url.", 1)
	APIServerUnavailableErr  = cli.NewExitError("Can't connect to the coordinator.", 1)
	RenderAsJSONErr          = cli.NewExitError("Unable to render projects as json.", 1)
	InvalidFileFormat        = cli.NewExitError("Invalid file format.", 1)
	GenericExitErr           = func(err error) error {
		return cli.NewExitError(fmt.Sprintf("something went wrong, %s", err.Error()), 1)
	}
)
View Source
var BaseCommands = []cli.Command{
	{
		Name:        BaseCommandGet,
		Description: "Retrieves a list of resource names",
		Subcommands: cli.Commands{
			{
				Name:      "projects",
				ShortName: "prj",
				Aliases: []string{
					"project",
				},
				Usage:       "Retrieves a list of projects",
				Description: "Retrieves a list of project names",
				Action:      HandleErr(getProjects()),
			},
		},
	},
	{
		Name:        BaseCommandDescribe,
		Description: "Prints detailed information about various resources in Vastness",
		Subcommands: cli.Commands{
			{
				Name:      "projects",
				ShortName: "prj",
				Aliases: []string{
					"project",
				},
				Usage:       "Describes a project",
				Description: "Prints detailed information of a particular vcs project",
				ArgsUsage:   "NAME [github|bitbucket-server]",
				Action:      HandleErr(DescribeProject()),
			},
		},
	},
	{
		Name:        BaseCommandImport,
		Description: "Imports a vcs project to Vastness",
		Subcommands: cli.Commands{
			{
				Name:        "github",
				Action:      HandleErr(GitAction(vcs.VcsType_GITHUB.String())),
				Usage:       "Imports a github project",
				Description: "Imports a github project to Vastness",
				ArgsUsage:   "REMOTE_URL BRANCH",
				Flags: []cli.Flag{
					cli.StringFlag{
						Name:  CreateFlagName(FileFlag, FileShortFlag),
						Usage: FileFlagUsage,
					},
					cli.IntFlag{
						Name:  CreateFlagName(MaxConcurrentFlag, MaxConcurrentShortFlag),
						Value: 1,
					},
				},
			},
			{
				Name:        "bitbucket-server",
				Action:      HandleErr(GitAction(vcs.VcsType_BITBUCKET_SERVER.String())),
				Usage:       "Imports a bitbucket server project",
				Description: "Imports a bitbucket server project to Vastness",
				ArgsUsage:   "REMOTE_URL BRANCH",
				Flags: []cli.Flag{
					cli.StringFlag{
						Name:  CreateFlagName(FileFlag, FileShortFlag),
						Usage: FileFlagUsage,
					},
					cli.IntFlag{
						Name:  CreateFlagName(MaxConcurrentFlag, MaxConcurrentShortFlag),
						Value: 1,
					},
				},
			},
		},
	},
}

Functions

func BatchProcess

func BatchProcess(importProjects []*importing.ImportProjectInfo, maxConcurrent int, vcsType, coordinatorAddr string, tracer opentracing.Tracer) error

func ChunkImportProjects

func ChunkImportProjects(importProjects []*importing.ImportProjectInfo, n int) [][]*importing.ImportProjectInfo

func CreateFlagName

func CreateFlagName(full, short string) string

func DescribeProject

func DescribeProject() func(*cli.Context) error

func ExtractNamesFromProjects

func ExtractNamesFromProjects(projects []*project.Project) (out []string)

func GitAction

func GitAction(vcsType string) cli.ActionFunc

func HandleErr

func HandleErr(actionFunc cli.ActionFunc) cli.ActionFunc

func ImportBatch

func ImportBatch(batch []*importing.ImportProjectInfo, vcsType, coordinatorAddr string, tracer opentracing.Tracer, errCh chan<- error)

func MapVcsTypesToVcsMessage

func MapVcsTypesToVcsMessage(vcsType string) (string, error)

func NewSpinner

func NewSpinner(prefix, finalMsg string) *spinner.Spinner

Types

type AggregatedError

type AggregatedError struct {
	// contains filtered or unexported fields
}

func (*AggregatedError) Add

func (e *AggregatedError) Add(err error) *AggregatedError

func (*AggregatedError) Error

func (e *AggregatedError) Error() string

func (*AggregatedError) ToError

func (e *AggregatedError) ToError() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL