platform: modularize api/gui, add docs-tests-web foundation, and refresh root config

This commit is contained in:
beckline
2026-03-26 22:40:54 +03:00
parent 0e2d7f61ea
commit 6a56d734c2
562 changed files with 70151 additions and 16423 deletions

View File

@@ -0,0 +1,115 @@
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)
}