diff options
author | feistel <6742251-feistel@users.noreply.gitlab.com> | 2021-09-20 08:19:41 +0000 |
---|---|---|
committer | Igor Drozdov <idrozdov@gitlab.com> | 2021-09-20 08:19:41 +0000 |
commit | 65dadb7e51e206b6411a4518f8a26471d586bc6f (patch) | |
tree | 3d02900c42b5c4483403c73a98fdb7ced3ba3d1a /cmd/gitlab-shell/command/command.go | |
parent | 37025e61e570e748613d9a5a57a7ae5de1b45af5 (diff) | |
download | gitlab-shell-65dadb7e51e206b6411a4518f8a26471d586bc6f.tar.gz |
refactor: unify instantiation of command.Shell
Diffstat (limited to 'cmd/gitlab-shell/command/command.go')
-rw-r--r-- | cmd/gitlab-shell/command/command.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cmd/gitlab-shell/command/command.go b/cmd/gitlab-shell/command/command.go index be54ac6..5f828cd 100644 --- a/cmd/gitlab-shell/command/command.go +++ b/cmd/gitlab-shell/command/command.go @@ -30,6 +30,20 @@ func New(arguments []string, env sshenv.Env, config *config.Config, readWriter * return nil, disallowedcommand.Error } +func NewWithKey(gitlabKeyId string, env sshenv.Env, config *config.Config, readWriter *readwriter.ReadWriter) (command.Command, error) { + args, err := Parse(nil, env) + if err != nil { + return nil, err + } + + args.GitlabKeyId = gitlabKeyId + if cmd := Build(args, config, readWriter); cmd != nil { + return cmd, nil + } + + return nil, disallowedcommand.Error +} + func Parse(arguments []string, env sshenv.Env) (*commandargs.Shell, error) { args := &commandargs.Shell{Arguments: arguments, Env: env} |