Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions internal/parser/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ import (
"github.com/alexfrick92/opcli/internal/commands"
)

var connectCommand = commands.Connect
var disconnectCommand = commands.Disconnect

// Execute выполняет команду из пользовательского ввода
func Execute(input string) error {
parts := strings.Fields(input)
Expand Down Expand Up @@ -47,24 +50,27 @@ func handleConnect(args []string) error {
if len(args) == 0 {
return fmt.Errorf("usage: connect <endpoint>")
}
return commands.Connect(args[0])
return connectCommand(args[0])
}

func handleDisconnect() error {
return commands.Disconnect()
return disconnectCommand()
}

// ParseStartupArgs обрабатывает аргументы командной строки при запуске
func ParseStartupArgs(args []string) error {
// Если передан IP-адрес, подключаемся с портом по умолчанию
if len(args) == 2 && isIPv4(args[1]) {
endpoint := fmt.Sprintf("opc.tcp://%s:4840", args[1])
return commands.Connect(endpoint)
return connectCommand(endpoint)
}

// Если передан аргумент connect, выполняем сразу
if len(args) > 2 && args[1] == "connect" {
return commands.Connect(args[2])
// Handle 'connect' command
if len(args) >= 2 && args[1] == "connect" {
if len(args) < 3 { // 'connect' command requires an endpoint
return fmt.Errorf("usage: connect <endpoint>")
}
return connectCommand(args[2])
}

return nil
Expand Down
Loading