Files
umbrix-libcore/cmd/cmd_tunnel_service.go
2024-03-22 16:25:56 +00:00

42 lines
1.0 KiB
Go

package cmd
import (
"fmt"
"time"
"github.com/hiddify/hiddify-core/config"
v2 "github.com/hiddify/hiddify-core/v2"
"github.com/spf13/cobra"
)
var commandService = &cobra.Command{
Use: "tunnel run/start/stop/install/uninstall",
Short: "Tunnel Service run/start/stop/install/uninstall/activate/deactivate/exit",
ValidArgs: []string{"run", "start", "stop", "install", "uninstall", "activate", "deactivate", "exit"},
Args: cobra.MatchAll(cobra.ExactArgs(1), cobra.OnlyValidArgs),
Run: func(cmd *cobra.Command, args []string) {
arg := args[0]
switch arg {
case "activate":
config.ActivateTunnelService(config.ConfigOptions{
InboundOptions: config.InboundOptions{
EnableTunService: true,
MixedPort: 2334,
TUNStack: "gvisor",
},
})
<-time.After(1 * time.Second)
case "deactivate":
config.DeactivateTunnelServiceForce()
case "exit":
config.ExitTunnelService()
default:
code, out := v2.StartTunnelService(arg)
fmt.Printf("exitCode:%d msg=%s", code, out)
}
},
}