diff options
author | Christian Höltje <choltje@us.ibm.com> | 2013-03-15 13:06:34 -0400 |
---|---|---|
committer | Christian Höltje <choltje@us.ibm.com> | 2013-03-15 13:06:34 -0400 |
commit | e794bdf37503360094e6414bb931dbf135e636ca (patch) | |
tree | 2145acfc3d75cf94d1fc7bfca40d60943f85a6c5 | |
parent | 0c6686b6e129db9086ac3fe0e896c892fe73f428 (diff) | |
download | gitlab-shell-e794bdf37503360094e6414bb931dbf135e636ca.tar.gz |
Use Kernel::exec instead of system()
We don't need to keep the ruby process around once we've
established that it's ok to run a git command.
-rw-r--r-- | lib/gitlab_shell.rb | 6 | ||||
-rw-r--r-- | spec/gitlab_shell_spec.rb | 14 |
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb index 842714e..75c7751 100644 --- a/lib/gitlab_shell.rb +++ b/lib/gitlab_shell.rb @@ -44,13 +44,17 @@ class GitlabShell def process_cmd repo_full_path = File.join(repos_path, repo_name) - system("#{@git_cmd} #{repo_full_path}") + exec_cmd "#{@git_cmd} #{repo_full_path}" end def validate_access api.allowed?(@git_cmd, @repo_name, @key_id, '_any') end + def exec_cmd args + Kernel::exec args + end + def api GitlabNet.new end diff --git a/spec/gitlab_shell_spec.rb b/spec/gitlab_shell_spec.rb index 51e02dd..2fa44a9 100644 --- a/spec/gitlab_shell_spec.rb +++ b/spec/gitlab_shell_spec.rb @@ -5,7 +5,7 @@ describe GitlabShell do subject do ARGV[0] = 'key-56' GitlabShell.new.tap do |shell| - shell.stub(process_cmd: true) + shell.stub(exec_cmd: :exec_called) shell.stub(api: api) end end @@ -53,6 +53,10 @@ describe GitlabShell do it "should process the command" do subject.should_receive(:process_cmd).with() end + + it "should execute the command" do + subject.should_receive(:exec_cmd).with("git-upload-pack /home/git/repositories/gitlab-ci.git") + end end context 'git-receive-pack' do @@ -62,6 +66,10 @@ describe GitlabShell do it "should process the command" do subject.should_receive(:process_cmd).with() end + + it "should execute the command" do + subject.should_receive(:exec_cmd).with("git-receive-pack /home/git/repositories/gitlab-ci.git") + end end context 'arbitrary command' do @@ -71,6 +79,10 @@ describe GitlabShell do it "should not process the command" do subject.should_not_receive(:process_cmd) end + + it "should not execute the command" do + subject.should_not_receive(:exec_cmd) + end end context 'no command' do |