summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorPatrick Bajao <ebajao@gitlab.com>2019-08-15 18:06:04 +0800
committerPatrick Bajao <ebajao@gitlab.com>2019-08-15 18:15:49 +0800
commit41f919eb86a3b1f69876f8b97572615b06521538 (patch)
treec840113cc7dc11643f5c8d7f55601322b2ee698e /Makefile
parentf34e2cd5c4194aa8bb049e1ac8aa1b2f002395b5 (diff)
downloadgitlab-shell-41f919eb86a3b1f69876f8b97572615b06521538.tar.gz
Replace symlinks with actual binaries
We had `gitlab-shell-authorized-keys-check` and `gitlab-shell-authorized-principals-check` as symlinks to `gitlab-shell` before. We determine the `Command` and `CommandArgs` that we build based on the `Name` of the `Executable`. We also use that to know which fallback ruby executable should we fallback to. We use `os.Executable()` to do that. `os.Executable()` behaves differently depending on OS. It may return the symlink or the target's name. That can result to a buggy behavior. The fix is to create binaries for each instead of using a symlink. That way we don't need to rely on `os.Executable()` to get the name. We pass the `Name` of the executable instead.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile17
1 files changed, 7 insertions, 10 deletions
diff --git a/Makefile b/Makefile
index aaa3098..b21d1b0 100644
--- a/Makefile
+++ b/Makefile
@@ -13,17 +13,14 @@ verify_golang:
test: test_ruby test_golang
test_ruby:
- # bin/gitlab-shell must exist and needs to be the Ruby version for
- # rspec to be able to test.
+ # bin/gitlab-shell, bin/gitlab-shell-authorized-keys-check and
+ # bin/gitlab-shell-authorized-principals-check must exist and need to be
+ # the Ruby version for rspec to be able to test.
cp bin/gitlab-shell-ruby bin/gitlab-shell
- # bin/gitlab-shell-authorized-keys-check and bin/gitlab-shell-authorized-principals-check
- # should link to ruby scripts for rspec to be able to test.
- ln -sf ./gitlab-shell-authorized-keys-check-ruby bin/gitlab-shell-authorized-keys-check
- ln -sf ./gitlab-shell-authorized-principals-check-ruby bin/gitlab-shell-authorized-principals-check
+ cp bin/gitlab-shell-authorized-keys-check-ruby bin/gitlab-shell-authorized-keys-check
+ cp bin/gitlab-shell-authorized-principals-check-ruby bin/gitlab-shell-authorized-principals-check
bundle exec rspec --color --tag '~go' --format d spec
- rm -f bin/gitlab-shell
- ln -sf ./gitlab-shell bin/gitlab-shell-authorized-keys-check
- ln -sf ./gitlab-shell bin/gitlab-shell-authorized-principals-check
+ rm -f bin/gitlab-shell bin/gitlab-shell-authorized-keys-check bin/gitlab-shell-authorized-principals-check
test_golang:
support/go-test
@@ -42,4 +39,4 @@ check:
bin/check
clean:
- rm -f bin/gitlab-shell
+ rm -f bin/gitlab-shell bin/gitlab-shell-authorized-keys-check bin/gitlab-shell-authorized-principals-check