summaryrefslogtreecommitdiff
path: root/lib/gitlab_projects.rb
diff options
context:
space:
mode:
authorJacob Vosmaer <contact@jacobvosmaer.nl>2013-11-01 13:46:13 +0100
committerJacob Vosmaer <contact@jacobvosmaer.nl>2013-11-01 13:46:37 +0100
commite76ad1dcb81e7be46f89b2fa4b848078a6318845 (patch)
tree730f33aeb9d5657795ec0a850a080d8de6263941 /lib/gitlab_projects.rb
parent634482d165ee5759206c42692a6857a588e63007 (diff)
downloadgitlab-shell-e76ad1dcb81e7be46f89b2fa4b848078a6318845.tar.gz
Refactor hook creation in GitlabProjects
Diffstat (limited to 'lib/gitlab_projects.rb')
-rw-r--r--lib/gitlab_projects.rb24
1 files changed, 10 insertions, 14 deletions
diff --git a/lib/gitlab_projects.rb b/lib/gitlab_projects.rb
index bea5686..5bcf623 100644
--- a/lib/gitlab_projects.rb
+++ b/lib/gitlab_projects.rb
@@ -74,12 +74,14 @@ class GitlabProjects
def add_project
$logger.info "Adding project #{@project_name} at <#{full_path}>."
FileUtils.mkdir_p(full_path, mode: 0770)
- cmd = "cd #{full_path} && git init --bare && #{create_hooks_cmd}"
- system(cmd)
+ cmd = "cd #{full_path} && git init --bare"
+ system(cmd) && create_hooks(full_path)
end
- def create_hooks_cmd
- create_hooks_to(full_path)
+ def create_hooks(path)
+ hook = File.join(path, 'hooks', 'update')
+ File.delete(hook) if File.exists?(hook)
+ File.symlink(File.join(ROOT_PATH, 'hooks', 'update'), hook)
end
def rm_project
@@ -92,8 +94,8 @@ class GitlabProjects
def import_project
@source = ARGV.shift
$logger.info "Importing project #{@project_name} from <#{@source}> to <#{full_path}>."
- cmd = "cd #{repos_path} && git clone --bare #{@source} #{project_name} && #{create_hooks_cmd}"
- system(cmd)
+ cmd = "cd #{repos_path} && git clone --bare #{@source} #{project_name}"
+ system(cmd) && create_hooks(full_path)
end
# Move repository from one directory to another
@@ -154,8 +156,8 @@ class GitlabProjects
end
$logger.info "Forking project from <#{full_path}> to <#{full_destination_path}>."
- cmd = "cd #{namespaced_path} && git clone --bare #{full_path} && #{create_hooks_to(full_destination_path)}"
- system(cmd)
+ cmd = "cd #{namespaced_path} && git clone --bare #{full_path}"
+ system(cmd) && create_hooks(full_destination_path)
end
def update_head
@@ -178,10 +180,4 @@ class GitlabProjects
$logger.info "Update head in project #{project_name} to <#{new_head}>."
true
end
-
- private
-
- def create_hooks_to(dest_path)
- "ln -s #{File.join(ROOT_PATH, 'hooks', 'update')} #{dest_path}/hooks/update"
- end
end