Sha256: 841352d4918e5f2280f49e668e8044b3a29f8731dda418da0bda57e5a54925c5

Contents?: true

Size: 1.1 KB

Versions: 19

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

require "open3"
require "rfix"
require "rfix/log"
require "rfix/cmd"
require "shellwords"

module Rfix::GitHelper
  include Rfix::Log
  include Rfix::Cmd

  def git(*params, root: Dir.pwd, quiet: false, &block)
    args = split_args(params)
    args.unshift *["--git-dir", File.join(root, ".git")]
    args.unshift *["--work-tree", root]
    cmd("git", *args, quiet: quiet, &block)
  end

  def split_args(params)
    return if params.empty?
    return split(params.first) if params.count == 1
    return params
  end

  def split(str)
    Shellwords.split(str)
  end

  def has_branch?(branch)
    cmd_succeeded?("git", "cat-file", "-t", branch)
  end

  def dirty?(path)
    Dir.chdir(path) do
      !cmd_succeeded?("git diff --quiet")
    end
  end

  def params
    [
      "--word-diff-regex=[^[:space:]]",
      "--no-renames",
      "--no-merges",
      "--first-parent",
      "--find-renames",
      "--find-copies",
      "--diff-filter=AMCR",
      "-U0",
      "--no-color",
      "-p"
    ]
  end
end

# TODO: Rename above to just ::Git
module Rfix::Git
  extend Rfix::GitHelper
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
rfix-1.4.1 lib/rfix/git_helper.rb
rfix-1.4.0.pre.201 lib/rfix/git_helper.rb
rfix-1.4.0 lib/rfix/git_helper.rb
rfix-1.3.0.pre.199 lib/rfix/git_helper.rb
rfix-1.2.6.pre.198 lib/rfix/git_helper.rb
rfix-1.2.6 lib/rfix/git_helper.rb
rfix-1.2.2.pre.174 lib/rfix/git_helper.rb
rfix-1.2.5 lib/rfix/git_helper.rb
rfix-1.2.4 lib/rfix/git_helper.rb
rfix-1.2.3.pre lib/rfix/git_helper.rb
rfix-1.2.2.pre lib/rfix/git_helper.rb
rfix-1.2.2.pre.172 lib/rfix/git_helper.rb
rfix-1.2.2 lib/rfix/git_helper.rb
rfix-1.1.0.pre.150 lib/rfix/git_helper.rb
rfix-1.2.0 lib/rfix/git_helper.rb
rfix-1.1.4.pre lib/rfix/git_helper.rb
rfix-1.1.1.pre lib/rfix/git_helper.rb
rfix-1.1.0.pre.149 lib/rfix/git_helper.rb
rfix-1.1.0.pre.147 lib/rfix/git_helper.rb