add classpath detection
This commit is contained in:
@ -16,6 +16,7 @@ type ClientConfig struct {
|
|||||||
Start *bool
|
Start *bool
|
||||||
NoShellService *bool
|
NoShellService *bool
|
||||||
CommandInPath *bool
|
CommandInPath *bool
|
||||||
|
ExtendClassPath string
|
||||||
}
|
}
|
||||||
|
|
||||||
func karenConfig() string {
|
func karenConfig() string {
|
||||||
@ -29,10 +30,18 @@ func (cc *ClientConfig) Print() string {
|
|||||||
r += cc.PrintStop()
|
r += cc.PrintStop()
|
||||||
r += cc.PrintDelay()
|
r += cc.PrintDelay()
|
||||||
r += cc.PrintStart()
|
r += cc.PrintStart()
|
||||||
|
r += cc.PrintLibraries()
|
||||||
r += karenConfig()
|
r += karenConfig()
|
||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cc *ClientConfig) PrintLibraries() string {
|
||||||
|
if cc.ExtendClassPath != "" {
|
||||||
|
return fmt.Sprintf("clientApp.0.classpath=%s\n", cc.ExtendClassPath)
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
func (cc *ClientConfig) CheckClientName(name string) string {
|
func (cc *ClientConfig) CheckClientName(name string) string {
|
||||||
if cc.ClientName == nil || *cc.ClientName == "" {
|
if cc.ClientName == nil || *cc.ClientName == "" {
|
||||||
cc.ClientName = &name
|
cc.ClientName = &name
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"go/build"
|
"go/build"
|
||||||
"io"
|
"io"
|
||||||
|
"io/fs"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
@ -30,6 +31,20 @@ var resdir *string
|
|||||||
var targetos *string
|
var targetos *string
|
||||||
var noautosuffixwindows *bool
|
var noautosuffixwindows *bool
|
||||||
|
|
||||||
|
func find(root, ext string) []string {
|
||||||
|
var a []string
|
||||||
|
filepath.WalkDir(root, func(s string, d fs.DirEntry, e error) error {
|
||||||
|
if e != nil {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
if filepath.Ext(d.Name()) == ext {
|
||||||
|
a = append(a, s)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
|
||||||
func flagsSet() {
|
func flagsSet() {
|
||||||
pc.PluginName = flag.String("name", "", "Name of the plugin")
|
pc.PluginName = flag.String("name", "", "Name of the plugin")
|
||||||
pc.KeyName = flag.String("key", "", "Key to use(omit for su3)")
|
pc.KeyName = flag.String("key", "", "Key to use(omit for su3)")
|
||||||
@ -116,14 +131,29 @@ func main() {
|
|||||||
|
|
||||||
fmt.Printf("executable:%s\n", executable)
|
fmt.Printf("executable:%s\n", executable)
|
||||||
fmt.Printf("resources:%s\n", *resdir)
|
fmt.Printf("resources:%s\n", *resdir)
|
||||||
fmt.Printf("plugin.config:\n\t%s\n", pc.Print())
|
|
||||||
fmt.Printf("client.config:\n\t%s\n", cc.Print())
|
|
||||||
|
|
||||||
os.RemoveAll("plugin")
|
os.RemoveAll("plugin")
|
||||||
if err := os.MkdirAll("plugin/lib", 0755); err != nil {
|
if err := os.MkdirAll("plugin/lib", 0755); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if resdir != nil && *resdir != "" {
|
||||||
|
files := find(filepath.Join(*resdir, "lib"), ".jar")
|
||||||
|
for i, file := range files {
|
||||||
|
cleaned := strings.Replace(file, *resdir, "$PLUGIN/", 1)
|
||||||
|
cc.ExtendClassPath += cleaned
|
||||||
|
if i != len(files)-1 {
|
||||||
|
cc.ExtendClassPath += ","
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err := copy.Copy(*resdir, "plugin/"); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("plugin.config:\n\t%s\n", pc.Print())
|
||||||
|
fmt.Printf("client.config:\n\t%s\n", cc.Print())
|
||||||
|
|
||||||
if err := ioutil.WriteFile("plugin/plugin.config", []byte(pc.Print()), 0644); err != nil {
|
if err := ioutil.WriteFile("plugin/plugin.config", []byte(pc.Print()), 0644); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -137,11 +167,7 @@ func main() {
|
|||||||
if err := os.Chmod("plugin/lib/"+executable, 0755); err != nil {
|
if err := os.Chmod("plugin/lib/"+executable, 0755); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
if resdir != nil && *resdir != "" {
|
|
||||||
if err := copy.Copy(*resdir, "plugin/"); err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if err := createZip(); err != nil {
|
if err := createZip(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user