Commit b37608b7 authored by Douwe Maan's avatar Douwe Maan

Add fetch-remote command

parent 4599d643
...@@ -59,6 +59,7 @@ class GitlabProjects ...@@ -59,6 +59,7 @@ class GitlabProjects
when 'mv-project'; mv_project when 'mv-project'; mv_project
when 'import-project'; import_project when 'import-project'; import_project
when 'fork-project'; fork_project when 'fork-project'; fork_project
when 'fetch-remote'; fetch_remote
when 'update-head'; update_head when 'update-head'; update_head
else else
$logger.warn "Attempt to execute invalid gitlab-projects command #{@command.inspect}." $logger.warn "Attempt to execute invalid gitlab-projects command #{@command.inspect}."
...@@ -128,6 +129,30 @@ class GitlabProjects ...@@ -128,6 +129,30 @@ class GitlabProjects
url url
end end
def fetch_remote
@name = ARGV.shift
# timeout for fetch
timeout = (ARGV.shift || 120).to_i
$logger.info "Fetching remote #{@name} for project #{@project_name}."
cmd = %W(git --git-dir=#{full_path} fetch #{@name} --tags)
pid = Process.spawn(*cmd)
begin
Timeout.timeout(timeout) do
Process.wait(pid)
end
$?.exitstatus.zero?
rescue Timeout::Error
$logger.error "Fetching remote #{@name} for project #{@project_name} failed due to timeout."
Process.kill('KILL', pid)
Process.wait
false
end
end
def remove_origin_in_repo def remove_origin_in_repo
cmd = %W(git --git-dir=#{full_path} remote rm origin) cmd = %W(git --git-dir=#{full_path} remote rm origin)
pid = Process.spawn(*cmd) pid = Process.spawn(*cmd)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment