package planr type RunnerBuilder struct { adapters [] Adapter dirs DirConfig } func ConfigureRunner() RunnerBuilder { return RunnerBuilder {} } func RegisterAdapter(b RunnerBuilder, a Adapter) RunnerBuilder { b.adapters = append(b.adapters, a) return b } func SetConfigDirFromTree(b RunnerBuilder, childPath string) RunnerBuilder { b.dirs.SetConfigFromTree(childPath) return b } func SetConfigDir(b RunnerBuilder, dir string) RunnerBuilder { b.dirs.SetConfig(dir) return b } func SetBuildDir(b RunnerBuilder, dir string) RunnerBuilder { b.dirs.SetBuild(dir) return b } func SetSrcDir(b RunnerBuilder, dir string) RunnerBuilder { b.dirs.SetSrc(dir) return b } func (b RunnerBuilder) New() Runner { return NewRunner(b.adapters, b.dirs) }