gitlab-runner, gitlab-runner_1_11: change path fix patch to work on non NixOS

It now tries to find the shell via path first and then falls back to the original
behavior.
This commit is contained in:
Pascal Bach 2017-05-23 22:34:22 +02:00
parent 86e714095c
commit 335865b943
4 changed files with 27 additions and 15 deletions

View File

@ -32,7 +32,7 @@ buildGoPackage rec {
sha256 = "0gz6byjnnfn9acy40hcbyzdql4199xn0yvjx2cfjjjzd9kryjrxp";
};
patches = [ ./v1-fix-shell-path.patch ];
patches = [ ./fix-shell-path.patch ];
buildInputs = [ go-bindata ];

View File

@ -0,0 +1,25 @@
diff --git a/shells/bash.go b/shells/bash.go
index 839b7781..2b478e1e 100644
--- a/shells/bash.go
+++ b/shells/bash.go
@@ -7,6 +7,7 @@ import (
"gitlab.com/gitlab-org/gitlab-ci-multi-runner/common"
"gitlab.com/gitlab-org/gitlab-ci-multi-runner/helpers"
"io"
+ "os/exec"
"path"
"runtime"
"strconv"
@@ -208,7 +209,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (script *commo
if info.User != "" {
script.Command = "su"
if runtime.GOOS == "linux" {
- script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell)
+ shellPath, err := exec.LookPath(b.Shell)
+ if err != nil {
+ shellPath = "/bin/"+b.Shell
+ }
+ script.Arguments = append(script.Arguments, "-s", shellPath)
}
script.Arguments = append(script.Arguments, info.User)
script.Arguments = append(script.Arguments, "-c", shellCommand)

View File

@ -1,13 +0,0 @@
diff --git a/shells/bash.go b/shells/bash.go
index c9c8b68..c97dbb5 100644
--- a/shells/bash.go
+++ b/shells/bash.go
@@ -208,7 +208,7 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (script *commo
if info.User != "" {
script.Command = "su"
if runtime.GOOS == "linux" {
- script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell)
+ script.Arguments = append(script.Arguments, "-s", "/run/current-system/sw/bin/"+b.Shell)
}
script.Arguments = append(script.Arguments, info.User)
script.Arguments = append(script.Arguments, "-c", shellCommand)

View File

@ -32,7 +32,7 @@ buildGoPackage rec {
sha256 = "1pm88546cijmrrcvvrajp2g6rsrzxhy83cwwwky8jjkl5w4hhmz4";
};
patches = [ ./v1-fix-shell-path.patch ];
patches = [ ./fix-shell-path.patch ];
buildInputs = [ go-bindata ];