diff options
author | Nick Thomas <nick@gitlab.com> | 2018-01-12 13:26:03 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2018-01-12 13:38:06 +0000 |
commit | 73e2cf531ca8b92dc48da5024c8095256aa10818 (patch) | |
tree | e9062e256967e9782527b4e032be7c44d60e388b /bin/create-hooks | |
parent | f8f314890758983e9d167529cb3a332a01262d5c (diff) | |
download | gitlab-shell-73e2cf531ca8b92dc48da5024c8095256aa10818.tar.gz |
Remove the GitlabProjects implementation
Diffstat (limited to 'bin/create-hooks')
-rwxr-xr-x | bin/create-hooks | 26 |
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. |