summaryrefslogtreecommitdiff
path: root/bin/create-hooks
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2018-01-12 13:26:03 +0000
committerNick Thomas <nick@gitlab.com>2018-01-12 13:38:06 +0000
commit73e2cf531ca8b92dc48da5024c8095256aa10818 (patch)
treee9062e256967e9782527b4e032be7c44d60e388b /bin/create-hooks
parentf8f314890758983e9d167529cb3a332a01262d5c (diff)
downloadgitlab-shell-73e2cf531ca8b92dc48da5024c8095256aa10818.tar.gz
Remove the GitlabProjects implementation
Diffstat (limited to 'bin/create-hooks')
-rwxr-xr-xbin/create-hooks26
1 files changed, 24 insertions, 2 deletions
diff --git a/bin/create-hooks b/bin/create-hooks
index d4111dc..e8b53c1 100755
--- a/bin/create-hooks
+++ b/bin/create-hooks
@@ -5,16 +5,38 @@
# This script is used when restoring a GitLab backup.
require_relative '../lib/gitlab_init'
-require File.join(ROOT_PATH, 'lib', 'gitlab_projects')
require File.join(ROOT_PATH, 'lib', 'gitlab_metrics')
+def create_hooks(path)
+ global_hooks_directory = File.join(ROOT_PATH, 'hooks')
+ local_hooks_directory = File.join(path, 'hooks')
+ real_local_hooks_directory = :not_found
+
+ begin
+ real_local_hooks_directory = File.realpath(local_hooks_directory)
+ rescue Errno::ENOENT
+ # real_local_hooks_directory == :not_found
+ end
+
+ if real_local_hooks_directory != File.realpath(global_hooks_directory)
+ if File.exist?(local_hooks_directory)
+ $logger.info "Moving existing hooks directory and symlinking global hooks directory for #{path}."
+ FileUtils.mv(local_hooks_directory, "#{local_hooks_directory}.old.#{Time.now.to_i}")
+ end
+ FileUtils.ln_sf(global_hooks_directory, local_hooks_directory)
+ else
+ $logger.info "Hooks already exist for #{path}."
+ true
+ end
+end
+
repository_storage_paths = ARGV
repository_storage_paths.each do |repo_path|
Dir["#{repo_path.chomp('/')}/**/*.git"].each do |repo|
begin
GitlabMetrics.measure('command-create-hooks') do
- GitlabProjects.create_hooks(repo)
+ create_hooks(repo)
end
rescue Errno::ENOENT
# The user must have deleted their repository. Ignore.