summaryrefslogtreecommitdiff
path: root/runner_builder.go
diff options
context:
space:
mode:
authorflu0r1ne <flu0r1ne@flu0r1ne.net>2021-09-05 20:37:19 -0500
committerflu0r1ne <flu0r1ne@flu0r1ne.net>2021-09-05 20:37:19 -0500
commitf5b60238e05b124eb40f805eb4a0bbfc0b043da5 (patch)
treef461bff108f5ddafc4078aa7394d7bf2a6309cc9 /runner_builder.go
parent8f22bd4f5b4eb6996c524bcb6948d36cef0ac822 (diff)
parentfd66fb134967067ed7e1c3182325f646b73c730b (diff)
downloaddeb-planr-f5b60238e05b124eb40f805eb4a0bbfc0b043da5.tar.xz
deb-planr-f5b60238e05b124eb40f805eb4a0bbfc0b043da5.zip
Merge branch 'upstream' into ppa
Merge v0.1.0
Diffstat (limited to 'runner_builder.go')
-rw-r--r--runner_builder.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/runner_builder.go b/runner_builder.go
new file mode 100644
index 0000000..b3c07d9
--- /dev/null
+++ b/runner_builder.go
@@ -0,0 +1,42 @@
+package planr
+
+type RunnerBuilder struct {
+ adapters map[string] Adapter
+ dirs DirConfig
+}
+
+func ConfigureRunner() RunnerBuilder {
+ builder := RunnerBuilder{}
+ builder.adapters = make(map[string] Adapter, 0)
+ return builder
+}
+
+func RegisterAdapter(b RunnerBuilder, a Adapter) RunnerBuilder {
+ nm := a.Config().Name
+ b.adapters[nm] = 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)
+}