diff options
Diffstat (limited to 'go/internal/command/commandargs/command_args.go')
-rw-r--r-- | go/internal/command/commandargs/command_args.go | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/go/internal/command/commandargs/command_args.go b/go/internal/command/commandargs/command_args.go index 9f28817..5338d6b 100644 --- a/go/internal/command/commandargs/command_args.go +++ b/go/internal/command/commandargs/command_args.go @@ -1,24 +1,22 @@ package commandargs -type CommandType string -type Executable string - -const ( - GitlabShell Executable = "gitlab-shell" +import ( + "gitlab.com/gitlab-org/gitlab-shell/go/internal/executable" ) +type CommandType string + type CommandArgs interface { Parse() error - Executable() Executable - Arguments() []string + GetArguments() []string } -func Parse(arguments []string) (CommandArgs, error) { - var args CommandArgs = &BaseArgs{arguments: arguments} +func Parse(e *executable.Executable, arguments []string) (CommandArgs, error) { + var args CommandArgs = &GenericArgs{Arguments: arguments} - switch args.Executable() { - case GitlabShell: - args = &Shell{BaseArgs: args.(*BaseArgs)} + switch e.Name { + case executable.GitlabShell: + args = &Shell{Arguments: arguments} } if err := args.Parse(); err != nil { |