lib/berkshelf/mixin/git.rb
require_relative "../shell_out"
module Berkshelf
module Mixin
module Git
include Berkshelf::ShellOut
# Perform a git command.
#
# @param [String] command
# the command to run
# @param [Boolean] error
# whether to raise error if the command fails
#
# @raise [String]
# the +$stdout+ from the command
def git(command, error = true, **kwargs)
unless Berkshelf.which("git") || Berkshelf.which("git.exe") || Berkshelf.which("git.bat")
raise GitNotInstalled.new
end
response = shell_out(%{git #{command}}, **kwargs)
if response.error?
raise GitCommandError.new(command, cache_path, response.stderr)
end
response.stdout.strip
end
end
end
end