diff options
author | Christopher Speller <crspeller@gmail.com> | 2018-06-25 12:33:13 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-25 12:33:13 -0700 |
commit | 1e5c432e1029601a664454388ae366ef69618d62 (patch) | |
tree | cb9e8bfb66640ac3b29c934bb2c3202d25aeb368 /plugin/rpcplugin/main.go | |
parent | ecefa6cdd1e7376046bbec82c1b47f7756fea646 (diff) | |
download | chat-1e5c432e1029601a664454388ae366ef69618d62.tar.gz chat-1e5c432e1029601a664454388ae366ef69618d62.tar.bz2 chat-1e5c432e1029601a664454388ae366ef69618d62.zip |
MM-10702 Moving plugins to use hashicorp go-plugin. (#8978)
* Moving plugins to use hashicorp go-plugin.
* Tweaks from feedback.
Diffstat (limited to 'plugin/rpcplugin/main.go')
-rw-r--r-- | plugin/rpcplugin/main.go | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/plugin/rpcplugin/main.go b/plugin/rpcplugin/main.go deleted file mode 100644 index efb880605..000000000 --- a/plugin/rpcplugin/main.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -package rpcplugin - -import ( - "bufio" - "encoding/binary" - "fmt" - "log" - "os" -) - -// Makes a set of hooks available via RPC. This function never returns. -func Main(hooks interface{}) { - ipc, err := InheritedProcessIPC() - if err != nil { - log.Fatal(err.Error()) - } - muxer := NewMuxer(ipc, true) - id, conn := muxer.Serve() - buf := make([]byte, 11) - buf[0] = 0 - n := binary.PutVarint(buf[1:], id) - if _, err := muxer.Write(buf[:1+n]); err != nil { - log.Fatal(err.Error()) - } - ServeHooks(hooks, conn, muxer) - os.Exit(0) -} - -// Returns the hooks being served by a call to Main. -func ConnectMain(muxer *Muxer, pluginId string) (*RemoteHooks, error) { - buf := make([]byte, 1) - if _, err := muxer.Read(buf); err != nil { - return nil, err - } else if buf[0] != 0 { - return nil, fmt.Errorf("unexpected control byte") - } - reader := bufio.NewReader(muxer) - id, err := binary.ReadVarint(reader) - if err != nil { - return nil, err - } - - return ConnectHooks(muxer.Connect(id), muxer, pluginId) -} |