116 lines
3.6 KiB
Go
116 lines
3.6 KiB
Go
package app
|
|
|
|
import transportcfg "selective-vpn-api/app/transportcfg"
|
|
|
|
func transportBackendUnit(client TransportClient) string {
|
|
return transportcfg.BackendUnit(transportCfgClient(client))
|
|
}
|
|
|
|
func defaultTransportBackendUnit(kind TransportClientKind) string {
|
|
return transportcfg.DefaultBackendUnit(string(kind))
|
|
}
|
|
|
|
func transportDNSTTSSHTunnelEnabled(client TransportClient) bool {
|
|
return transportcfg.DNSTTSSHTunnelEnabled(transportCfgClient(client))
|
|
}
|
|
|
|
func transportDNSTTSSHUnit(client TransportClient) string {
|
|
return transportcfg.DNSTTSSHUnit(transportCfgClient(client))
|
|
}
|
|
|
|
func transportRuntimeMode(cfg map[string]any) string {
|
|
return transportcfg.RuntimeMode(cfg)
|
|
}
|
|
|
|
func transportSystemdActionUnits(client TransportClient, action string) ([]string, string, string) {
|
|
return transportcfg.SystemdActionUnits(transportCfgClient(client), action)
|
|
}
|
|
|
|
func transportSystemdHealthUnits(client TransportClient) ([]string, string, string) {
|
|
return transportcfg.SystemdHealthUnits(transportCfgClient(client))
|
|
}
|
|
|
|
func transportConfigString(cfg map[string]any, key string) string {
|
|
return transportcfg.ConfigString(cfg, key)
|
|
}
|
|
|
|
func transportConfigBool(cfg map[string]any, key string) bool {
|
|
return transportcfg.ConfigBool(cfg, key)
|
|
}
|
|
|
|
func transportCfgClient(client TransportClient) transportcfg.Client {
|
|
return transportcfg.Client{
|
|
ID: client.ID,
|
|
Kind: string(client.Kind),
|
|
Config: client.Config,
|
|
}
|
|
}
|
|
|
|
func resolveTransportPrimaryExecStart(client TransportClient) (string, string, error) {
|
|
return transportcfg.ResolvePrimaryExecStart(
|
|
transportCfgClient(client),
|
|
transportSingBoxConfigPath(client),
|
|
defaultTransportConfigPath(client.ID, "client.toml"),
|
|
)
|
|
}
|
|
|
|
func buildTransportSingBoxCommand(client TransportClient) (string, error) {
|
|
return transportcfg.BuildSingBoxCommand(transportCfgClient(client), transportSingBoxConfigPath(client))
|
|
}
|
|
|
|
func buildTransportPhoenixClientCommand(client TransportClient) (string, error) {
|
|
return transportcfg.BuildPhoenixClientCommand(transportCfgClient(client), defaultTransportConfigPath(client.ID, "client.toml"))
|
|
}
|
|
|
|
func buildTransportDNSTTClientCommand(client TransportClient) (string, error) {
|
|
return transportcfg.BuildDNSTTClientCommand(transportCfgClient(client))
|
|
}
|
|
|
|
func defaultTransportConfigPath(clientID, fileName string) string {
|
|
return transportcfg.DefaultConfigPath(clientID, fileName, sanitizeID)
|
|
}
|
|
|
|
func resolveTransportBinary(cfg map[string]any, kind string, systemCandidates ...string) (string, error) {
|
|
return transportcfg.ResolveBinary(cfg, kind, systemCandidates...)
|
|
}
|
|
|
|
func validateRequiredBinary(cfg map[string]any, kind, bin string) error {
|
|
return transportcfg.ValidateRequiredBinary(cfg, kind, bin)
|
|
}
|
|
|
|
func transportPackagingProfile(cfg map[string]any) string {
|
|
return transportcfg.PackagingProfile(cfg)
|
|
}
|
|
|
|
func transportBinaryName(kind string) string {
|
|
return transportcfg.BinaryName(kind)
|
|
}
|
|
|
|
func firstExistingBinaryCandidate(candidates ...string) (string, bool) {
|
|
return transportcfg.FirstExistingBinaryCandidate(candidates...)
|
|
}
|
|
|
|
func findBinaryPath(candidate string) (string, bool) {
|
|
return transportcfg.FindBinaryPath(candidate)
|
|
}
|
|
|
|
func transportBinaryExists(candidate string) bool {
|
|
return transportcfg.BinaryExists(candidate)
|
|
}
|
|
|
|
func shellJoinArgs(args []string) string {
|
|
return transportcfg.ShellJoinArgs(args, shellQuoteArg)
|
|
}
|
|
|
|
func shellQuoteArg(in string) string {
|
|
return transportcfg.ShellQuoteArg(in)
|
|
}
|
|
|
|
func buildTransportSSHOverlayCommand(cfg map[string]any) (string, error) {
|
|
return transportcfg.BuildSSHOverlayCommand(cfg, transportConfigInt, shellQuoteArg)
|
|
}
|
|
|
|
func transportConfigInt(cfg map[string]any, key string, defaultVal int) int {
|
|
return transportcfg.ConfigInt(cfg, key, defaultVal)
|
|
}
|