Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/backend/gitolite_config.rb')
-rw-r--r--lib/gitlab/backend/gitolite_config.rb38
1 files changed, 15 insertions, 23 deletions
diff --git a/lib/gitlab/backend/gitolite_config.rb b/lib/gitlab/backend/gitolite_config.rb
index e4ebd595a93..748f9d74390 100644
--- a/lib/gitlab/backend/gitolite_config.rb
+++ b/lib/gitlab/backend/gitolite_config.rb
@@ -4,6 +4,8 @@ require 'fileutils'
module Gitlab
class GitoliteConfig
+ include Gitlab::Popen
+
class PullError < StandardError; end
class PushError < StandardError; end
class BrokenGitolite < StandardError; end
@@ -87,12 +89,14 @@ module Gitlab
Gitlab::GitLogger.error(message)
end
- def destroy_project(project)
- # do rm-rf only if repository exists
- if project.repository
- FileUtils.rm_rf(project.repository.path_to_repo)
- end
- conf.rm_repo(project.path_with_namespace)
+ def path_to_repo(name)
+ File.join(Gitlab.config.gitolite.repos_path, "#{name}.git")
+ end
+
+ def destroy_project(name)
+ full_path = path_to_repo(name)
+ FileUtils.rm_rf(full_path) if File.exists?(full_path)
+ conf.rm_repo(name)
end
def clean_repo repo_name
@@ -210,14 +214,14 @@ module Gitlab
end
def push
- output, status = popen('git add -A')
+ output, status = popen('git add -A', tmp_conf_path)
raise "Git add failed." unless status.zero?
# git commit returns 0 on success, and 1 if there is nothing to commit
- output, status = popen('git commit -m "GitLab"')
+ output, status = popen('git commit -m "GitLab"', tmp_conf_path)
raise "Git add failed." unless [0,1].include?(status)
- output, status = popen('git push')
+ output, status = popen('git push', tmp_conf_path)
if output =~ /remote\: FATAL/
raise BrokenGitolite, output
@@ -230,20 +234,8 @@ module Gitlab
end
end
- def popen(cmd, path = nil)
- path ||= File.join(config_tmp_dir,'gitolite')
- vars = { "PWD" => path }
- options = { :chdir => path }
-
- @cmd_output = ""
- @cmd_status = 0
- Open3.popen3(vars, cmd, options) do |stdin, stdout, stderr, wait_thr|
- @cmd_status = wait_thr.value.exitstatus
- @cmd_output << stdout.read
- @cmd_output << stderr.read
- end
-
- return @cmd_output, @cmd_status
+ def tmp_conf_path
+ File.join(config_tmp_dir,'gitolite')
end
end
end