From 4f61061cfbf5a3917442c7e0a971099cf0f9a0a9 Mon Sep 17 00:00:00 2001 From: Jacob Vosmaer Date: Mon, 22 Sep 2014 15:02:46 +0200 Subject: [PATCH] Support sockets in 'rake gitlab:shell:install' --- CHANGELOG | 1 + doc/install/installation.md | 2 +- lib/tasks/gitlab/shell.rake | 13 +++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6667eceb94a..3f6cc3a8268 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -32,6 +32,7 @@ v 7.3.0 - Zen mode (fullscreen) for issues/MR/notes (Robert Schilling) - Add ability to configure webhook timeout via gitlab.yml (Wes Gurney) - Sort project merge requests in asc or desc order for updated_at or created_at field (sponsored by O'Reilly Media) + - Add Redis socket support to 'rake gitlab:shell:install' v 7.2.1 - Delete orphaned labels during label migration (James Brooks) diff --git a/doc/install/installation.md b/doc/install/installation.md index a0e39e42e7b..bae39e20e18 100644 --- a/doc/install/installation.md +++ b/doc/install/installation.md @@ -257,7 +257,7 @@ We recommend using a PostgreSQL database. For MySQL check [MySQL setup guide](da GitLab Shell is an SSH access and repository management software developed specially for GitLab. # Run the installation task for gitlab-shell (replace `REDIS_URL` if needed): - sudo -u git -H bundle exec rake gitlab:shell:install[v1.9.7] REDIS_URL=redis://localhost:6379 RAILS_ENV=production + sudo -u git -H bundle exec rake gitlab:shell:install[v1.9.7] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production # By default, the gitlab-shell config is generated from your main GitLab config. # You can review (and modify) the gitlab-shell config as follows: diff --git a/lib/tasks/gitlab/shell.rake b/lib/tasks/gitlab/shell.rake index ece3ad58385..71716ae1856 100644 --- a/lib/tasks/gitlab/shell.rake +++ b/lib/tasks/gitlab/shell.rake @@ -24,8 +24,6 @@ namespace :gitlab do Dir.chdir(target_dir) do sh "git fetch origin && git reset --hard $(git describe #{args.tag} || git describe origin/#{args.tag})" - redis_url = URI.parse(ENV['REDIS_URL'] || "redis://localhost:6379") - config = { user: user, gitlab_url: gitlab_url, @@ -34,14 +32,21 @@ namespace :gitlab do auth_file: File.join(home_dir, ".ssh", "authorized_keys"), redis: { bin: %x{which redis-cli}.chomp, - host: redis_url.host, - port: redis_url.port, namespace: "resque:gitlab" }.stringify_keys, log_level: "INFO", audit_usernames: false }.stringify_keys + redis_url = URI.parse(ENV['REDIS_URL'] || "redis://localhost:6379") + + if redis_url.scheme == 'unix' + config['redis']['socket'] = redis_url.path + else + config['redis']['host'] = redis_url.host + config['redis']['port'] = redis_url.port + end + # Generate config.yml based on existing gitlab settings File.open("config.yml", "w+") {|f| f.puts config.to_yaml}