Files
i2p.plugin.native/cmd/i2p.plugin.native/client-config.go

105 lines
2.7 KiB
Go
Raw Normal View History

2021-11-06 17:07:32 -04:00
package main
import (
"fmt"
"log"
"strings"
)
type ClientConfig struct {
ClientName *string
ClientDisplayName *string
Command *string
CommandArgs *string
StopCommand *string
Delay *string
Start *bool
NoShellService *bool
CommandInPath *bool
2021-12-04 15:41:14 -05:00
ExtendClassPath string
2021-11-06 17:07:32 -04:00
}
func karenConfig() string {
return ""
}
func (cc *ClientConfig) Print() string {
2021-12-04 16:14:02 -05:00
r := "clientApp.0.main=net.i2p.app.CorrectedShellService\n"
2021-11-06 17:07:32 -04:00
r += cc.PrintClientName()
r += cc.PrintCommand()
r += cc.PrintStop()
r += cc.PrintDelay()
r += cc.PrintStart()
2021-12-04 15:41:14 -05:00
r += cc.PrintLibraries()
2021-11-06 17:07:32 -04:00
r += karenConfig()
return r
}
2021-12-04 15:41:14 -05:00
func (cc *ClientConfig) PrintLibraries() string {
if cc.ExtendClassPath != "" {
return fmt.Sprintf("clientApp.0.classpath=%s\n", cc.ExtendClassPath)
}
return ""
}
2021-11-06 17:07:32 -04:00
func (cc *ClientConfig) CheckClientName(name string) string {
if cc.ClientName == nil || *cc.ClientName == "" {
cc.ClientName = &name
}
return fmt.Sprintf("clientApp.0.name=%s\n", *cc.ClientName)
}
func (cc *ClientConfig) PrintClientName() string {
if cc.ClientName == nil || *cc.ClientName == "" {
log.Fatal("-name is a required field.")
}
return fmt.Sprintf("clientApp.0.name=%s\n", *cc.ClientName)
}
func (cc *ClientConfig) PrintCommandArgs() string {
if cc.CommandArgs == nil || *cc.CommandArgs == "" {
split := strings.Split(*cc.Command, " ")
if len(split) > 1 {
return strings.TrimRight(strings.Join(split[1:], " "), " ")
}
}
return *cc.CommandArgs
}
func (cc *ClientConfig) PrintCommand() string {
if cc.ClientName == nil || *cc.ClientName == "" {
2021-11-06 17:07:32 -04:00
log.Fatal("-name is a required field.")
}
CIP := ""
if cc.CommandInPath == nil || !*cc.CommandInPath {
CIP = "$PLUGIN/lib/"
}
exesuffix := ""
if *targetos == "windows" && !*noautosuffixwindows {
exesuffix = ".exe"
}
if cc.Command == nil || *cc.Command == "" {
return fmt.Sprintf("clientApp.0.args=%s%s%s -shellservice.name \"%s\" -shellservice.displayname \"%s\" %s\n", CIP, *cc.Command, exesuffix, *cc.ClientName, *cc.ClientDisplayName, cc.PrintCommandArgs())
}
2021-11-06 17:07:32 -04:00
name := strings.Split(*cc.Command, " ")[0]
return fmt.Sprintf("clientApp.0.args=%s%s%s -shellservice.name \"%s\" -shellservice.displayname \"%s\" %s\n", CIP, name, exesuffix, *cc.ClientName, *cc.ClientDisplayName, cc.PrintCommandArgs())
2021-11-06 17:07:32 -04:00
}
func (cc *ClientConfig) PrintStop() string {
return ""
}
func (cc *ClientConfig) PrintDelay() string {
if cc.ClientName == nil || *cc.ClientName == "" {
return fmt.Sprintf("clientApp.0.delay=%s\n", "5")
}
return fmt.Sprintf("clientApp.0.delay=%s\n", *cc.Delay)
}
func (cc *ClientConfig) PrintStart() string {
if cc.Start == nil {
return ""
}
return fmt.Sprintf("clientApp.0.startOnLoad=%t\n", *cc.Start)
}