Skip to content

Commit 05798f8

Browse files
author
root
committed
Get Gitolite lib dir with gitolite query-rc command
1 parent 487b2a0 commit 05798f8

File tree

11 files changed

+42
-31
lines changed

11 files changed

+42
-31
lines changed

Diff for: app/forms/plugin_settings_validation/storage_config.rb

+2-4
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,16 @@ module StorageConfig
99
add_accessor :gitolite_global_storage_dir,
1010
:gitolite_redmine_storage_dir,
1111
:gitolite_recycle_bin_dir,
12-
:gitolite_local_code_dir,
13-
:gitolite_lib_dir
12+
:gitolite_local_code_dir
1413

1514
before_validation do
1615
self.gitolite_global_storage_dir = strip_value(gitolite_global_storage_dir)
1716
self.gitolite_redmine_storage_dir = strip_value(gitolite_redmine_storage_dir)
1817
self.gitolite_recycle_bin_dir = strip_value(gitolite_recycle_bin_dir)
1918
self.gitolite_local_code_dir = strip_value(gitolite_local_code_dir)
20-
self.gitolite_lib_dir = strip_value(gitolite_lib_dir)
2119
end
2220

23-
validates_presence_of :gitolite_global_storage_dir, :gitolite_recycle_bin_dir, :gitolite_lib_dir
21+
validates_presence_of :gitolite_global_storage_dir, :gitolite_recycle_bin_dir
2422
validates_presence_of :gitolite_local_code_dir, if: Proc.new { RedmineGitHosting::Config.gitolite_version == 3 }
2523

2624
validates_each PATHS_TO_VALIDATE do |record, attr, value|

Diff for: app/views/settings/redmine_git_hosting/_gitolite_config_storage.html.haml

-9
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
- gitolite_redmine_storage_dir = RedmineGitHosting::Config.get_setting(:gitolite_redmine_storage_dir)
44
- gitolite_recycle_bin_dir = RedmineGitHosting::Config.get_setting(:gitolite_recycle_bin_dir)
55
- gitolite_local_code_dir = RedmineGitHosting::Config.get_setting(:gitolite_local_code_dir)
6-
- gitolite_lib_dir = RedmineGitHosting::Config.get_setting(:gitolite_lib_dir)
76

87
%h3= l(:label_gitolite_storage_config)
98

@@ -40,11 +39,3 @@
4039
= surround '(', ')' do
4140
= l(:label_gitolite_local_code_dir_desc) + ','
4241
= link_to 'Gitolite non-core programs', 'http://gitolite.com/gitolite/non-core.html#localcode', target: 'blank'
43-
44-
%p
45-
%label= l(:label_gitolite_lib_dir)
46-
= text_field_tag 'settings[gitolite_lib_dir]', gitolite_lib_dir, size: 60
47-
%br
48-
%em
49-
= surround '(', ')' do
50-
= l(:label_gitolite_lib_dir_desc)

Diff for: app/views/settings/redmine_git_hosting/_gitolite_config_test.html.haml

+16
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,22 @@
2020
%td= l(:label_sudo_redmine_to_gitolite_user)
2121
%td= image_tag (RedmineGitHosting::Config.can_redmine_sudo_to_gitolite_user? ? 'true.png' : 'exclamation.png')
2222

23+
%tr
24+
%td= l(:label_gitolite_bin_dir)
25+
%td
26+
- if RedmineGitHosting::Config.gitolite_bin_dir
27+
%span{ class: 'label label-success' }= RedmineGitHosting::Config.gitolite_bin_dir
28+
- else
29+
= image_tag('exclamation.png')
30+
31+
%tr
32+
%td= l(:label_gitolite_lib_dir)
33+
%td
34+
- if RedmineGitHosting::Config.gitolite_lib_dir
35+
%span{ class: 'label label-success' }= RedmineGitHosting::Config.gitolite_lib_dir
36+
- else
37+
= image_tag('exclamation.png')
38+
2339
- gitolite_checks = RedmineGitHosting::Config.check_hooks_install!
2440

2541
%tr

Diff for: config/locales/settings/en.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ en:
2828
label_gitolite_redmine_storage_dir_desc: Relative to Gitolite repositories base path
2929
label_gitolite_local_code_dir: Gitolite non-core hooks directory
3030
label_gitolite_local_code_dir_desc: Relative to Gitolite user home
31-
label_gitolite_lib_dir: Gitolite librairies directory
32-
label_gitolite_lib_dir_desc: /usr/share/gitolite3/lib under Debian, bin/lib/ if installed by hand
3331

3432
# Gitolite Config File
3533
label_tab_config_file: Configuration file
@@ -170,6 +168,8 @@ en:
170168
label_gitolite_repository_count: Count of physical repositories in Gitolite
171169
label_gitolite_rugged_features: Rugged compiled features
172170
label_gitolite_libgit2_version: libgit2 version
171+
label_gitolite_bin_dir: Gitolite binaries directory
172+
label_gitolite_lib_dir: Gitolite librairies directory
173173

174174
# Recycle Bin
175175
label_tab_gitolite_recycle_bin: Recycle Bin

Diff for: config/locales/settings/es.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ es:
2828
label_gitolite_redmine_storage_dir_desc: Relativa al directorio de repositorios de Gitolite
2929
label_gitolite_local_code_dir: Carpeta de hooks non-core de Gitolite
3030
label_gitolite_local_code_dir_desc: Relativa al directorio del usuario de Gitolite
31-
label_gitolite_lib_dir: Carpeta de bibliotecas de Gitolite
32-
label_gitolite_lib_dir_desc: /usr/share/gitolite3/lib en Debian, bin/lib/ si se ha instalado a mano
3331

3432
# Gitolite Config File
3533
label_tab_config_file: Fichero de configuración
@@ -169,6 +167,8 @@ es:
169167
label_gitolite_repository_count: Recuento de repositorios físicos en Gitolite
170168
label_gitolite_rugged_features: Características de Rugged compiladas
171169
label_gitolite_libgit2_version: Versión de libgit2
170+
label_gitolite_bin_dir: Carpeta de binarios de Gitolite
171+
label_gitolite_lib_dir: Carpeta de bibliotecas de Gitolite
172172

173173
# Recycle Bin
174174
label_tab_gitolite_recycle_bin: Papelera de reciclaje

Diff for: config/locales/settings/fr.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ fr:
2828
label_gitolite_redmine_storage_dir_desc: Relatif au répertoire personnel de l'utilisateur Gitolite
2929
label_gitolite_local_code_dir: Répertoire de stockage des hooks non-core
3030
label_gitolite_local_code_dir_desc: Relatif au répertoire personnel de l'utilisateur Gitolite
31-
label_gitolite_lib_dir: Répertoire contenant les librairies Gitolite
32-
label_gitolite_lib_dir_desc: /usr/share/gitolite3/lib sous Debian, bin/lib/ si installé à la main
3331

3432
# Gitolite Config File
3533
label_tab_config_file: Fichier de configuration
@@ -170,6 +168,8 @@ fr:
170168
label_gitolite_repository_count: Nombre de dépôts physiques dans Gitolite
171169
label_gitolite_rugged_features: Fonctionnalités compilées dans Rugged
172170
label_gitolite_libgit2_version: Version de libgit2
171+
label_gitolite_bin_dir: Répertoire des binaires Gitolite
172+
label_gitolite_lib_dir: Répertoire des librairies Gitolite
173173

174174
# Recycle Bin
175175
label_tab_gitolite_recycle_bin: Corbeille

Diff for: config/locales/settings/ru.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ ru:
2828
label_gitolite_redmine_storage_dir_desc: Относительно каталога репозиториев Gitolite
2929
label_gitolite_local_code_dir: Каталог внешних хуков Gitolite
3030
label_gitolite_local_code_dir_desc: Относительно домашнего каталога пользователя Gitolite
31-
label_gitolite_lib_dir: Каталог с библиотеками Gitolite
32-
label_gitolite_lib_dir_desc: /usr/share/gitolite3/lib в Debian, bin/lib/ если была ручная установка
3331

3432
# Gitolite Config File
3533
label_tab_config_file: Конфиг. файл
@@ -169,6 +167,8 @@ ru:
169167
label_gitolite_repository_count: Количество репозиториев в Gitolite
170168
label_gitolite_rugged_features: Rugged скомпилирован с поддержкой
171169
label_gitolite_libgit2_version: Версия libgit2
170+
label_gitolite_bin_dir: Каталог с двоичный Gitolite
171+
label_gitolite_lib_dir: Каталог с библиотеками Gitolite
172172

173173
# Recycle Bin
174174
label_tab_gitolite_recycle_bin: Корзина

Diff for: lib/default_settings.yml

-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ gitolite_global_storage_dir: 'repositories/'
1111
gitolite_redmine_storage_dir: ''
1212
gitolite_recycle_bin_dir: 'recycle_bin/'
1313
gitolite_local_code_dir: 'local/'
14-
gitolite_lib_dir: 'bin/lib/'
1514

1615
# Gitolite Config File
1716
gitolite_config_file: 'gitolite.conf'

Diff for: lib/grack/server.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ def git_command_with_chdir
153153
def smart_http_args
154154
[
155155
'env',
156-
"GL_LIBDIR=#{RedmineGitHosting::Config.gitolite_lib_dir_path}",
156+
"GL_BINDIR=#{RedmineGitHosting::Config.gitolite_bin_dir}",
157+
"GL_LIBDIR=#{RedmineGitHosting::Config.gitolite_lib_dir}",
157158
"GL_REPO=#{repository_object.gitolite_repository_name}",
158159
"GL_USER=#{@env['REMOTE_USER']}"
159160
]

Diff for: lib/redmine_git_hosting/commands/gitolite.rb

+10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,16 @@ def gitolite_infos
1515
end
1616

1717

18+
def sudo_gitolite_query_rc(param)
19+
begin
20+
sudo_capture('gitolite', 'query-rc', param)
21+
rescue RedmineGitHosting::Error::GitoliteCommandException => e
22+
logger.error("Can't retrieve Gitolite param : #{e.output}")
23+
nil
24+
end
25+
end
26+
27+
1828
def sudo_update_gitolite!
1929
if gitolite_command.nil?
2030
logger.error("gitolite_command is nil, can't update Gitolite !")

Diff for: lib/redmine_git_hosting/config/gitolite_base.rb

+4-8
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,13 @@ def gitolite_home_dir
2828
end
2929

3030

31-
def gitolite_lib_dir
32-
get_setting(:gitolite_lib_dir)
31+
def gitolite_bin_dir
32+
@gitolite_bin_dir ||= RedmineGitHosting::Commands.sudo_gitolite_query_rc('GL_BINDIR')
3333
end
3434

3535

36-
def gitolite_lib_dir_path
37-
if gitolite_lib_dir.starts_with?('/')
38-
gitolite_lib_dir
39-
else
40-
File.join(gitolite_home_dir, gitolite_lib_dir)
41-
end
36+
def gitolite_lib_dir
37+
@gitolite_lib_dir ||= RedmineGitHosting::Commands.sudo_gitolite_query_rc('GL_LIBDIR')
4238
end
4339

4440

0 commit comments

Comments
 (0)