summaryrefslogtreecommitdiff
path: root/lib/gitlab_projects.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-03-12 11:30:01 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-03-12 11:30:01 +0200
commit2e48458521dfeaa6856b16ca6a73832ff42ce1a4 (patch)
treed33348631c637abae3cbdcc0aa6bb049733b1332 /lib/gitlab_projects.rb
parent318eb652894eac9d86dbbd684384a3720a60d37d (diff)
downloadgitlab-shell-2e48458521dfeaa6856b16ca6a73832ff42ce1a4.tar.gz
Use Process spawn
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'lib/gitlab_projects.rb')
-rw-r--r--lib/gitlab_projects.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb
index d761026..d0b1e1f 100644
--- a/lib/gitlab_projects.rb
+++ b/lib/gitlab_projects.rb
@@ -99,11 +99,14 @@ class GitlabProjects
$logger.info "Importing project #{@project_name} from <#{@source}> to <#{full_path}>."
cmd = %W(git clone --bare -- #{@source} #{full_path})
+ pid = Process.spawn(*cmd)
+
begin
Timeout.timeout(timeout) do
- system(*cmd)
+ Process.wait(pid)
end
- rescue
+ rescue Timeout::Error
+ Process.kill('TERM', pid)
$logger.error "Importing project #{@project_name} from <#{@source}> failed due to timeout."
FileUtils.rm_rf(full_path)
false