_support/run.rb (25 lines of code) (raw):
def run!(cmd, chdir='.')
GitlabPagesSupport.print_cmd(cmd)
if !system(*cmd, chdir: chdir)
GitlabPagesSupport.fail_cmd!(cmd)
end
end
def capture!(cmd, chdir='.')
GitlabPagesSupport.print_cmd(cmd)
output = IO.popen(cmd, chdir: chdir) { |io| io.read }
fail_cmd!(cmd) unless $?.success?
output
end
module GitlabPagesSupport
class << self
def print_cmd(cmd)
puts '-> ' + printable_cmd(cmd)
end
def fail_cmd!(cmd)
abort "command failed: #{printable_cmd(cmd)}"
end
def printable_cmd(cmd)
cmd.join(' ')
end
end
end