plugin: make the plugin preload work again

License: MIT
Signed-off-by: 's avatarJakub Sztandera <kubuxu@protonmail.ch>
上级 b0679728
...@@ -14,7 +14,7 @@ import ( ...@@ -14,7 +14,7 @@ import (
EOL EOL
to_preload | while read -r name path num; do to_preload | while read -r name path num; do
echo "\tplugin$name \"$path\"" echo "plugin$name \"$path\""
done | sort -u done | sort -u
cat <<EOL cat <<EOL
...@@ -24,7 +24,7 @@ var preloadPlugins = []plugin.Plugin{ ...@@ -24,7 +24,7 @@ var preloadPlugins = []plugin.Plugin{
EOL EOL
to_preload | while read -r name path num; do to_preload | while read -r name path num; do
echo "\tplugin$name.Plugins[$num]," echo "plugin$name.Plugins[$num],"
done done
......
...@@ -3,4 +3,4 @@ ...@@ -3,4 +3,4 @@
# #
# name go-path number of the sub-plugin # name go-path number of the sub-plugin
#ipldgit github.com/ipfs/go-ipfs/plugin/plugins/git 0 ipldgit github.com/ipfs/go-ipfs/plugin/plugins/git 0
...@@ -2,9 +2,16 @@ include mk/header.mk ...@@ -2,9 +2,16 @@ include mk/header.mk
$(d)_plugins:=$(d)/git $(d)_plugins:=$(d)/git
$(d)_plugins_so:=$(addsuffix .so,$($(d)_plugins)) $(d)_plugins_so:=$(addsuffix .so,$($(d)_plugins))
$(d)_plugins_main:=$(addsuffix /main/main.go,$($(d)_plugins))
$($(d)_plugins_main): d:=$(d)
$($(d)_plugins_main):
$(d)/gen_main.sh "$(dir $@).." "$(call go-pkg-name,$(dir $@)/..)"
$($(d)_plugins_so): %.so : %/main/main.go
$($(d)_plugins_so): $$(DEPS_GO) ALWAYS $($(d)_plugins_so): $$(DEPS_GO) ALWAYS
go build -buildmode=plugin -i -pkgdir "$$GOPATH/pkg/linux_amd64_dynlink" $(go-flags-with-tags) -o "$@" "$(call go-pkg-name,$(basename $@))" go build -buildmode=plugin -i -pkgdir "$(GOPATH)/pkg/linux_amd64_dynlink" $(go-flags-with-tags) -o "$@" "$(call go-pkg-name,$(basename $@))/main"
chmod +x "$@" chmod +x "$@"
CLEAN += $($(d)_plugins_so) CLEAN += $($(d)_plugins_so)
......
#!/bin/bash
dir=${1:?first paramater with dir to work in is required}
pkg=${2:?second parameter with full name of the package is required}
main_pkg="$dir/main"
shortpkg="uniquepkgname"
mkdir -p "$main_pkg"
cat > "$main_pkg/main.go" <<EOL
package main
import (
$shortpkg "$pkg"
)
var Plugins = $shortpkg.Plugins
EOL
package main package git
import ( import (
"compress/zlib" "compress/zlib"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论