summaryrefslogtreecommitdiff
path: root/go/cmd/gitlab-shell/main.go
diff options
context:
space:
mode:
authorPatrick Bajao <ebajao@gitlab.com>2019-07-29 14:33:01 +0800
committerPatrick Bajao <ebajao@gitlab.com>2019-07-29 14:58:32 +0800
commitaab85f3600caf04b491d6ca4fc3f0f004d9e3fc0 (patch)
treeda3f6ab04de4e0c1ba5b79a281c6ca91852e0aa1 /go/cmd/gitlab-shell/main.go
parented0460374a5ca13d9ea17c6a9c21151319b7fd53 (diff)
downloadgitlab-shell-aab85f3600caf04b491d6ca4fc3f0f004d9e3fc0.tar.gz
Support falling back to ruby version of checkers
Rename the ruby scripts to have `-ruby` suffix and add a symlink for both to `./gitlab-shell`. The executable name will be used to determine how args will be parsed. For now, we only parse the arguments for gitlab-shell commands. If the executable is `gitlab-shell-authorized-keys-check` or `gitlab-shell-authorized-principals-check`, it'll always fallback to the ruby version. Ruby specs test the ruby script, the fallback from go to ruby and go implementation of both (still pending).
Diffstat (limited to 'go/cmd/gitlab-shell/main.go')
-rw-r--r--go/cmd/gitlab-shell/main.go18
1 files changed, 2 insertions, 16 deletions
diff --git a/go/cmd/gitlab-shell/main.go b/go/cmd/gitlab-shell/main.go
index f4d519f..be388d3 100644
--- a/go/cmd/gitlab-shell/main.go
+++ b/go/cmd/gitlab-shell/main.go
@@ -6,7 +6,6 @@ import (
"path/filepath"
"gitlab.com/gitlab-org/gitlab-shell/go/internal/command"
- "gitlab.com/gitlab-org/gitlab-shell/go/internal/command/fallback"
"gitlab.com/gitlab-org/gitlab-shell/go/internal/command/readwriter"
"gitlab.com/gitlab-org/gitlab-shell/go/internal/config"
)
@@ -28,17 +27,6 @@ func findRootDir() (string, error) {
return filepath.Dir(filepath.Dir(path)), nil
}
-// rubyExec will never return. It either replaces the current process with a
-// Ruby interpreter, or outputs an error and kills the process.
-func execRuby(rootDir string, readWriter *readwriter.ReadWriter) {
- cmd := &fallback.Command{RootDir: rootDir, Args: os.Args}
-
- if err := cmd.Execute(); err != nil {
- fmt.Fprintf(readWriter.ErrOut, "Failed to exec: %v\n", err)
- os.Exit(1)
- }
-}
-
func main() {
readWriter := &readwriter.ReadWriter{
Out: os.Stdout,
@@ -52,12 +40,10 @@ func main() {
os.Exit(1)
}
- // Fall back to Ruby in case of problems reading the config, but issue a
- // warning as this isn't something we can sustain indefinitely
config, err := config.NewFromDir(rootDir)
if err != nil {
- fmt.Fprintln(readWriter.ErrOut, "Failed to read config, falling back to gitlab-shell-ruby")
- execRuby(rootDir, readWriter)
+ fmt.Fprintln(readWriter.ErrOut, "Failed to read config, exiting")
+ os.Exit(1)
}
cmd, err := command.New(os.Args, config, readWriter)