diff options
Diffstat (limited to 'plugins/factory/tests/plugin_1.go')
-rw-r--r-- | plugins/factory/tests/plugin_1.go | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/plugins/factory/tests/plugin_1.go b/plugins/factory/tests/plugin_1.go new file mode 100644 index 00000000..a7aba98e --- /dev/null +++ b/plugins/factory/tests/plugin_1.go @@ -0,0 +1,55 @@ +package tests + +import ( + "errors" + "fmt" + + "github.com/temporalio/roadrunner-temporal/config" + "github.com/temporalio/roadrunner-temporal/factory" +) + +type Foo struct { + configProvider config.Provider + spawner factory.Spawner +} + +func (f *Foo) Init(p config.Provider, spw factory.Spawner) error { + f.configProvider = p + f.spawner = spw + return nil +} + +func (f *Foo) Serve() chan error { + errCh := make(chan error, 1) + + r := &factory.AppConfig{} + err := f.configProvider.UnmarshalKey("app", r) + if err != nil { + errCh <- err + return errCh + } + + cmd, err := f.spawner.NewCmd(nil) + if err != nil { + errCh <- err + return errCh + } + if cmd == nil { + errCh <- errors.New("command is nil") + return errCh + } + a := cmd() + out, err := a.Output() + if err != nil { + errCh <- err + return errCh + } + + fmt.Println(string(out)) + + return errCh +} + +func (f *Foo) Stop() error { + return nil +} |