Skip to content

Commit bfd41ad

Browse files
author
root
committed
Rename set_hook_param method to set_git_config_param
1 parent fb76369 commit bfd41ad

File tree

1 file changed

+37
-14
lines changed

1 file changed

+37
-14
lines changed

Diff for: lib/redmine_gitolite/hooks.rb

+37-14
Original file line numberDiff line numberDiff line change
@@ -56,19 +56,19 @@ def hook_params_installed?
5656
installed = {}
5757

5858
if @global_hook_params["redmineurl"] != @gitolite_hooks_url
59-
installed['redmineurl'] = set_hook_param("redmineurl", @gitolite_hooks_url)
59+
installed['redmineurl'] = set_git_config_param("redmineurl", @gitolite_hooks_url)
6060
else
6161
installed['redmineurl'] = true
6262
end
6363

6464
if @global_hook_params["debugmode"] != @debug_mode.to_s
65-
installed['debugmode'] = set_hook_param("debugmode", @debug_mode.to_s)
65+
installed['debugmode'] = set_git_config_param("debugmode", @debug_mode.to_s)
6666
else
6767
installed['debugmode'] = true
6868
end
6969

7070
if @global_hook_params["asyncmode"] != @async_mode.to_s
71-
installed['asyncmode'] = set_hook_param("asyncmode", @async_mode.to_s)
71+
installed['asyncmode'] = set_git_config_param("asyncmode", @async_mode.to_s)
7272
else
7373
installed['asyncmode'] = true
7474
end
@@ -321,26 +321,49 @@ def get_git_config_params(namespace)
321321
end
322322

323323

324-
# Returns the global gitconfig prefix for
325-
# a config with that given key under the
326-
# hooks namespace.
327-
#
328-
def gitconfig_prefix(key)
329-
[GITOLITE_HOOKS_NAMESPACE, '.', key].join
330-
end
324+
def set_git_config_param(key, value, namespace = GITOLITE_HOOKS_NAMESPACE)
325+
key = gitconfig_prefix(key, namespace)
331326

327+
return unset_git_config_param(key) if value == ''
332328

333-
def set_hook_param(name, value)
334-
logger.info { "Set Git hooks global parameter : #{name} (#{value})" }
329+
logger.info { "Set Git hooks global parameter : #{key} (#{value})" }
335330

336331
begin
337-
GitoliteWrapper.sudo_capture('git', 'config', '--global', gitconfig_prefix(name), value)
332+
GitoliteWrapper.sudo_capture('git', 'config', '--global', key, value)
338333
return true
339334
rescue GitHosting::GitHostingException => e
340-
logger.error { "Error while setting Git hooks global parameter : #{name} (#{value})" }
335+
logger.error { "Error while setting Git hooks global parameter : #{key} (#{value})" }
336+
logger.error { e.output }
341337
return false
342338
end
343339
end
344340

341+
342+
def unset_git_config_param(key)
343+
logger.info { "Unset Git hooks global parameter : #{key}" }
344+
345+
begin
346+
_, _, code = GitoliteWrapper.sudo_shell('git', 'config', '--global', '--unset', key)
347+
return true
348+
rescue GitHosting::GitHostingException => e
349+
if code == 5
350+
return true
351+
else
352+
logger.error { "Error while removing Git hooks global parameter : #{key}" }
353+
logger.error { e.output }
354+
return false
355+
end
356+
end
357+
end
358+
359+
360+
# Returns the global gitconfig prefix for
361+
# a config with that given key under the
362+
# hooks namespace.
363+
#
364+
def gitconfig_prefix(key, namespace)
365+
[namespace, '.', key].join
366+
end
367+
345368
end
346369
end

0 commit comments

Comments
 (0)