40 lines
1.1 KiB
Ruby
40 lines
1.1 KiB
Ruby
|
namespace :gitlab do
|
||
|
|
||
|
# Runs the given command and matches the output agains the given pattern
|
||
|
#
|
||
|
# Returns nil if nothing matched
|
||
|
# Retunrs the MatchData if the pattern matched
|
||
|
#
|
||
|
# see also #run
|
||
|
# see also String#match
|
||
|
def run_and_match(command, regexp)
|
||
|
run(command).try(:match, regexp)
|
||
|
end
|
||
|
|
||
|
# Runs the given command
|
||
|
#
|
||
|
# Returns nil if the command was not found
|
||
|
# Returns the output of the command otherwise
|
||
|
#
|
||
|
# see also #run_and_match
|
||
|
def run(command)
|
||
|
unless `#{command} 2>/dev/null`.blank?
|
||
|
`#{command}`
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def warn_user_is_not_gitlab
|
||
|
unless @warned_user_not_gitlab
|
||
|
current_user = run("whoami").chomp
|
||
|
unless current_user == "gitlab"
|
||
|
puts "#{Colored.color(:black)+Colored.color(:on_yellow)} Warning #{Colored.extra(:clear)}"
|
||
|
puts " You are running as user #{current_user.magenta}, we hope you know what you are doing."
|
||
|
puts " Things may work\/fail for the wrong reasons."
|
||
|
puts " For correct results you should run this as user #{"gitlab".magenta}."
|
||
|
puts ""
|
||
|
end
|
||
|
@warned_user_not_gitlab = true
|
||
|
end
|
||
|
end
|
||
|
end
|