写一个插件

从开发到测试

  • 新建一个项目,项目结构为:
  1. demo-plugin/
  2. src/
  3. github.com/
  4. TeaWeb/
  5. plugin/
  6. [https://github.com/TeaWeb/plugin源码]
  7. main/
  8. demo.go - 你的插件源文件
  9. build.sh - 构建脚本

其中plugin源码可以在 这里 下载;

  • main/ 目录下建一个插件的Go文件,比如命名为 demo.go
  • demo.go 中实现
  1. package main
  2. import (
  3. "github.com/TeaWeb/plugin/loader"
  4. "github.com/TeaWeb/plugin/plugins"
  5. )
  6. func main() {
  7. demoPlugin := plugins.NewPlugin()
  8. demoPlugin.Name = "Demo Plugin"
  9. demoPlugin.Code = "com.example.demo"
  10. demoPlugin.Developer = "Liu xiangchao"
  11. demoPlugin.Version = "1.0.0"
  12. demoPlugin.Date = "2018-10-15"
  13. demoPlugin.Site = "https://github.com/TeaWeb/build"
  14. demoPlugin.Description = "这是一个Demo插件"
  15. loader.Start(demoPlugin)
  16. }
  • 可以修改 demoPlugin,以提供插件的名称、描述等信息,或者实现其他功能;
  • 使用 go build -o demo.tea demo.go 编译插件;
  • 将编译成功后的 demo.tea 放到TeaWebplugins/ 目录下,重启 TeaWeb 后生效。

构建脚本

build.sh

  1. #!/usr/bin/env bash
  2. export GOPATH=`pwd`/../../
  3. export CGO_ENABLED=1
  4. # msgpack
  5. if [ ! -d "${GOPATH}/src/github.com/vmihailenco/msgpack" ]
  6. then
  7. go get "github.com/vmihailenco/msgpack"
  8. fi
  9. # TeaWeb
  10. if [ ! -d "${GOPATH}/src/github.com/TeaWeb/plugin" ]
  11. then
  12. go get "github.com/TeaWeb/plugin"
  13. fi
  14. go build -o demo.tea demo.go

代码示例

请见 main/demo.go