gex

package module
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2020 License: MIT Imports: 11 Imported by: 3

README

gex

CI GoDoc GitHub release (latest SemVer) Go Report Card License

The implementation of clarify best practice for tool dependencies.

See https://github.com/golang/go/issues/25922#issuecomment-412992431

Features

  • Manage versions of tools dependencies, and build them with specified version
  • Does not introduce new mechanisms to manage tool dependencies
  • Only 2 commands that you use: --add and --build
  • All you need to execute go generate ./tools.go if you want only to use tools

Usage

gex --add [packages...]

Add a new tool to dependencies:

$ gex --add github.com/golang/mock/mockgen

The tool will be managed in tools.go and its version will be managed by Modules or dep.

$ cat tools.go
// Code generated by github.com/izumin5210/gex. DO NOT EDIT.

// +build tools

package tools

// tool dependencies
import (
        _ "github.com/golang/mock/mockgen"
)

// If you want to use tools, please run the following command:
//  go generate ./tools.go
//
//go:generate go build -v -o=./bin/reviewdog github.com/golang/mock/mockgen

$ cat go.mod | grep mock
        github.com/golang/mock v1.1.1 // indirect
go generate ./tools.go

Build executable binaries into $PWD/bin.

$ go generate ./tools.go
gex [command] [args...]

Execute command that managed in tools.go and go.mod. gex will build the executable binary automatically if needed.

$ gex mockgen
# prints mockgen's help text...

Installation

macOS
$ brew install izumin5210/tools/gex
Other platforms

You can download prebuilt binaries for each platform in the releases page.

Build from source
$ go get github.com/izumin5210/gex/cmd/gex

Requirements

gex depends on dep or Modules to manage tool dependencies,

Documentation

Index

Constants

View Source
const (
	Version = "0.6.1"
)

Variables

View Source
var Default = createDefaultConfig()

Default contains default configuration.

Functions

This section is empty.

Types

type Config

type Config struct {
	OutWriter io.Writer
	ErrWriter io.Writer
	InReader  io.Reader

	FS   afero.Fs
	Exec *execx.Executor

	WorkingDir   string
	RootDir      string
	ManifestName string
	BinDirName   string
	ManagerType  manager.Type

	Verbose bool
	Logger  *log.Logger
}

Config specifies the configration for managing development tools.

func (*Config) Create

func (c *Config) Create() (tool.Repository, error)

Create creates a new instance of tool.Repository to manage developemnt tools.

Directories

Path Synopsis
cmd
gex
pkg
tests
e2e Module

Jump to

Keyboard shortcuts

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