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) }