summaryrefslogtreecommitdiff
path: root/cmd/gitlab-shell/command
diff options
context:
space:
mode:
authorIgor Drozdov <idrozdov@gitlab.com>2021-09-20 08:19:42 +0000
committerIgor Drozdov <idrozdov@gitlab.com>2021-09-20 08:19:42 +0000
commit52e676c87f931a6d847866ef3018e262459bf11d (patch)
treed0d579de49e3ba34934e24cc3dac4b985bf5f5b1 /cmd/gitlab-shell/command
parent1c17b914b9a2c6a01c3cd458a26e791fd0f8a52d (diff)
parent65dadb7e51e206b6411a4518f8a26471d586bc6f (diff)
downloadgitlab-shell-52e676c87f931a6d847866ef3018e262459bf11d.tar.gz
Merge branch 'refactor/unify-shell' into 'main'
refactor: unify instantiation of command.Shell Closes #517 See merge request gitlab-org/gitlab-shell!520
Diffstat (limited to 'cmd/gitlab-shell/command')
-rw-r--r--cmd/gitlab-shell/command/command.go14
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}