Skip to content
Snippets Groups Projects
Commit 147dfd16 authored by Riyad Preukschas's avatar Riyad Preukschas
Browse files

Replace all stat command line calls with ruby equivalents

parent f73dd4af
No related branches found
No related tags found
1 merge request!104094 0 stable
Loading
Loading
@@ -502,7 +502,7 @@ namespace :gitlab do
return
end
 
if `stat --printf %a #{gitolite_config_path}` == "750"
if File.stat(gitolite_config_path).mode.to_s(8).ends_with?("750")
puts "yes".green
else
puts "no".red
Loading
Loading
@@ -526,12 +526,11 @@ namespace :gitlab do
return
end
 
if `stat --printf %U #{gitolite_config_path}` == gitolite_ssh_user && # user
`stat --printf %G #{gitolite_config_path}` == gitolite_ssh_user #group
if File.stat(gitolite_config_path).uid == uid_for(gitolite_ssh_user) &&
File.stat(gitolite_config_path).gid == gid_for(gitolite_ssh_user)
puts "yes".green
else
puts "no".red
puts "#{gitolite_config_path} is not owned by #{gitolite_ssh_user}".red
try_fixing_it(
"sudo chown -R #{gitolite_ssh_user}:#{gitolite_ssh_user} #{gitolite_config_path}"
)
Loading
Loading
@@ -722,7 +721,7 @@ namespace :gitlab do
return
end
 
if `stat --printf %a #{repo_base_path}` == "6770"
if File.stat(repo_base_path).mode.to_s(8).ends_with?("6770")
puts "yes".green
else
puts "no".red
Loading
Loading
@@ -746,12 +745,11 @@ namespace :gitlab do
return
end
 
if `stat --printf %U #{repo_base_path}` == gitolite_ssh_user && # user
`stat --printf %G #{repo_base_path}` == gitolite_ssh_user #group
if File.stat(repo_base_path).uid == uid_for(gitolite_ssh_user) &&
File.stat(repo_base_path).gid == gid_for(gitolite_ssh_user)
puts "yes".green
else
puts "no".red
puts "#{repo_base_path} is not owned by #{gitolite_ssh_user}".red
try_fixing_it(
"sudo chown -R #{gitolite_ssh_user}:#{gitolite_ssh_user} #{repo_base_path}"
)
Loading
Loading
@@ -832,7 +830,8 @@ namespace :gitlab do
next
end
 
if run_and_match("stat --format %N #{project_hook_file}", /#{hook_file}.+->.+#{gitolite_hook_file}/)
if File.lstat(project_hook_file).symlink? &&
File.realpath(project_hook_file) == File.realpath(gitolite_hook_file)
puts "ok".green
else
puts "not a link to Gitolite's hook".red
Loading
Loading
Loading
Loading
@@ -45,6 +45,15 @@ namespace :gitlab do
end
end
 
def uid_for(user_name)
run("id -u #{user_name}").chomp.to_i
end
def gid_for(group_name)
group_line = File.read("/etc/group").lines.select{|l| l.start_with?("#{group_name}:")}.first
group_line.split(":")[2].to_i
end
def warn_user_is_not_gitlab
unless @warned_user_not_gitlab
current_user = run("whoami").chomp
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment