ProxySwitcher/proxy/debug.go

73 lines
1.5 KiB
Go

//go:build windows
package proxy
import (
"errors"
"fmt"
"log"
"os"
"path/filepath"
"strings"
"github.com/Baipyrus/ProxySwitcher/util"
)
func mapCmdsToStr(commands []*util.Command) string {
var output []string
for _, command := range commands {
cmdArgs := strings.Join(command.Arguments, " ")
cmdStr := fmt.Sprintf("%s %s", command.Name, cmdArgs)
output = append(output, cmdStr)
}
return strings.Join(output, "\n")
}
func Debug(cfgPath string) {
path, _ := filepath.Abs(cfgPath)
if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) {
path = "[N/A]"
}
fmt.Printf("\nConfig:\n")
fmt.Printf("%s\n\n", path)
proxy, err := ReadSystemProxy()
proxyServer := proxy.Server
if err != nil {
log.Fatal(err)
} else if proxyServer == "" {
proxyServer = "[N/A]"
}
fmt.Println("System Proxy:")
fmt.Printf("Enabled: %t\n", proxy.Enabled)
fmt.Printf("Server: %s\n\n", proxyServer)
configs, err := util.ReadConfigs(cfgPath)
if err != nil {
log.Fatal(err)
}
for _, config := range configs {
configCmd := config.Name
// Use command instead of name, if given
if config.Cmd != "" {
configCmd = config.Cmd
}
fmt.Printf("Loading commands for '%s':\n", config.Name)
// Debug Proxy Set Commands
setCmds := generateCommands(configCmd, config.Set, "[PROXY PLACEHOLDER]")
fmt.Println("Set Commands:")
fmt.Printf("%s\n", mapCmdsToStr(setCmds))
// Debug Proxy Unset Commands
unsetCmds := generateCommands(configCmd, config.Unset, "")
fmt.Println("Unset Commands:")
fmt.Printf("%s\n\n", mapCmdsToStr(unsetCmds))
}
}