aboutsummaryrefslogtreecommitdiff
path: root/plugin.go
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-12-02 19:37:31 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-12-02 19:37:31 +0100
commit4c5294210a19e79d759b8f0ed7dcef9aafa4059f (patch)
treee0f069f75a505f1844b59741f8338f5b75a79b0c /plugin.go
parente180db41f514e3d769f3fa4af436d6a580487c2b (diff)
make auto plugin building work in dev builds
Diffstat (limited to 'plugin.go')
-rw-r--r--plugin.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/plugin.go b/plugin.go
index f399a8f..aeb9b8d 100644
--- a/plugin.go
+++ b/plugin.go
@@ -16,6 +16,14 @@ func BuildPlugin() error {
return err
}
+ if version == "(devel)" {
+ return buildPluginDev(version)
+ }
+
+ return buildPlugin(version)
+}
+
+func buildPlugin(version string) error {
pathVer := "github.com/HimbeerserverDE/mt-multiserver-proxy@" + version
if err := goCmd("get", pathVer); err != nil {
@@ -33,6 +41,29 @@ func BuildPlugin() error {
return nil
}
+func buildPluginDev(version string) error {
+ replace := "-replace=github.com/HimbeerserverDE/mt-multiserver-proxy=" + Path()
+ const dropReplace = "-dropreplace=github.com/HimbeerserverDE/mt-multiserver-proxy"
+
+ if err := goCmd("mod", "edit", replace); err != nil {
+ return err
+ }
+
+ if err := goCmd("mod", "tidy"); err != nil {
+ return err
+ }
+
+ if err := goCmd("build", "-buildmode=plugin"); err != nil {
+ return err
+ }
+
+ if err := goCmd("mod", "edit", dropReplace); err != nil {
+ return err
+ }
+
+ return nil
+}
+
func loadPlugins() {
pluginsOnce.Do(openPlugins)
}