plugin: make the plugin preload work again
License: MIT Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
Jakub Sztandera committed
Jul 13, 2017 at 21:14 UTC
c569b0be8ae5bcd85d915f8922cd7c4a489aabdf
6 files changed
+31
-5
plugin/loader/preload.sh
+2
-2
@@ -14,7 +14,7 @@ import (
14
EOL
15
16
to_preload | while read -r name path num; do
17
- echo "\tplugin$name \"$path\""
17
+ echo "plugin$name \"$path\""
18
done | sort -u
19
20
cat <<EOL
@@ -24,7 +24,7 @@ var preloadPlugins = []plugin.Plugin{
24
EOL
25
26
to_preload | while read -r name path num; do
27
- echo "\tplugin$name.Plugins[$num],"
27
+ echo "plugin$name.Plugins[$num],"
28
done
29
30
plugin/loader/preload_list
+1
-1
@@ -3,4 +3,4 @@
3
#
4
# name go-path number of the sub-plugin
5
6
-#ipldgit github.com/ipfs/go-ipfs/plugin/plugins/git 0
6
+ipldgit github.com/ipfs/go-ipfs/plugin/plugins/git 0
plugin/plugins/.gitignore
+1
@@ -1 +1,2 @@
1
*.so
2
+*/main
plugin/plugins/Rules.mk
+8
-1
@@ -2,9 +2,16 @@ include mk/header.mk
2
3
$(d)_plugins:=$(d)/git
4
$(d)_plugins_so:=$(addsuffix .so,$($(d)_plugins))
5
+$(d)_plugins_main:=$(addsuffix /main/main.go,$($(d)_plugins))
6
7
+
8
+$($(d)_plugins_main): d:=$(d)
9
+$($(d)_plugins_main):
10
+ $(d)/gen_main.sh "$(dir $@).." "$(call go-pkg-name,$(dir $@)/..)"
11
+
12
+$($(d)_plugins_so): %.so : %/main/main.go
13
$($(d)_plugins_so): $$(DEPS_GO) ALWAYS
7
- go build -buildmode=plugin -i -pkgdir "$$GOPATH/pkg/linux_amd64_dynlink" $(go-flags-with-tags) -o "$@" "$(call go-pkg-name,$(basename $@))"
14
+ go build -buildmode=plugin -i -pkgdir "$(GOPATH)/pkg/linux_amd64_dynlink" $(go-flags-with-tags) -o "$@" "$(call go-pkg-name,$(basename $@))/main"
15
chmod +x "$@"
16
17
CLEAN += $($(d)_plugins_so)
plugin/plugins/gen_main.sh
new
+18
@@ -0,0 +1,18 @@
1
+#!/bin/bash
2
+
3
+dir=${1:?first paramater with dir to work in is required}
4
+pkg=${2:?second parameter with full name of the package is required}
5
+main_pkg="$dir/main"
6
+
7
+shortpkg="uniquepkgname"
8
+
9
+mkdir -p "$main_pkg"
10
+
11
+cat > "$main_pkg/main.go" <<EOL
12
+package main
13
+import (
14
+ $shortpkg "$pkg"
15
+)
16
+
17
+var Plugins = $shortpkg.Plugins
18
+EOL
plugin/plugins/git/git.go
+1
-1
@@ -1,4 +1,4 @@
1
-package main
1
+package git
2
3
import (
4
"compress/zlib"