From 67415dc4f6f293460517d4281b5e4e80e66ffb91 Mon Sep 17 00:00:00 2001 From: feistel <6742251-feistel@users.noreply.gitlab.com> Date: Wed, 8 Sep 2021 14:40:35 +0000 Subject: refactor: rearchitect command and executable Go modules --- .../command/command.go | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 cmd/gitlab-shell-authorized-principals-check/command/command.go (limited to 'cmd/gitlab-shell-authorized-principals-check/command/command.go') diff --git a/cmd/gitlab-shell-authorized-principals-check/command/command.go b/cmd/gitlab-shell-authorized-principals-check/command/command.go new file mode 100644 index 0000000..b5ded54 --- /dev/null +++ b/cmd/gitlab-shell-authorized-principals-check/command/command.go @@ -0,0 +1,39 @@ +package command + +import ( + "gitlab.com/gitlab-org/gitlab-shell/internal/command" + "gitlab.com/gitlab-org/gitlab-shell/internal/command/authorizedprincipals" + "gitlab.com/gitlab-org/gitlab-shell/internal/command/commandargs" + "gitlab.com/gitlab-org/gitlab-shell/internal/command/readwriter" + "gitlab.com/gitlab-org/gitlab-shell/internal/command/shared/disallowedcommand" + "gitlab.com/gitlab-org/gitlab-shell/internal/config" + "gitlab.com/gitlab-org/gitlab-shell/internal/executable" + "gitlab.com/gitlab-org/gitlab-shell/internal/sshenv" +) + +func New(e *executable.Executable, arguments []string, env sshenv.Env, config *config.Config, readWriter *readwriter.ReadWriter) (command.Command, error) { + args, err := Parse(e, arguments, env) + if err != nil { + return nil, err + } + + if cmd := build(args, config, readWriter); cmd != nil { + return cmd, nil + } + + return nil, disallowedcommand.Error +} + +func Parse(e *executable.Executable, arguments []string, env sshenv.Env) (*commandargs.AuthorizedPrincipals, error) { + args := &commandargs.AuthorizedPrincipals{Arguments: arguments} + + if err := args.Parse(); err != nil { + return nil, err + } + + return args, nil +} + +func build(args *commandargs.AuthorizedPrincipals, config *config.Config, readWriter *readwriter.ReadWriter) command.Command { + return &authorizedprincipals.Command{Config: config, Args: args, ReadWriter: readWriter} +} -- cgit v1.2.1