
1. 去掉全局的配置 config 2. 合并 pkg/build, pkg/flag, pkg/cover, pkg/config 几个包(这几个包有强相关性,适合放一处。并且分开也容易造成循环依赖)
50 lines
691 B
Go
50 lines
691 B
Go
package build
|
|
|
|
import (
|
|
"github.com/spf13/pflag"
|
|
)
|
|
|
|
type GocOption func(*Build)
|
|
|
|
func WithHost(host string) GocOption {
|
|
return func(b *Build) {
|
|
b.Host = host
|
|
}
|
|
}
|
|
|
|
func WithMode(mode string) GocOption {
|
|
return func(b *Build) {
|
|
b.Mode = mode
|
|
}
|
|
}
|
|
|
|
func WithArgs(args []string) GocOption {
|
|
return func(b *Build) {
|
|
b.Args = args
|
|
}
|
|
}
|
|
|
|
func WithFlagSets(sets *pflag.FlagSet) GocOption {
|
|
return func(b *Build) {
|
|
b.FlagSets = sets
|
|
}
|
|
}
|
|
|
|
func WithBuild() GocOption {
|
|
return func(b *Build) {
|
|
b.BuildType = 0
|
|
}
|
|
}
|
|
|
|
func WithInstall() GocOption {
|
|
return func(b *Build) {
|
|
b.BuildType = 1
|
|
}
|
|
}
|
|
|
|
func WithDebug(enable bool) GocOption {
|
|
return func(b *Build) {
|
|
b.Debug = enable
|
|
}
|
|
}
|