Sha256: 8409ce192942dbf036f4c894a59a722441c234e4c57e59419eb12bc51fc81581

Contents?: true

Size: 756 Bytes

Versions: 3

Compression:

Stored size: 756 Bytes

Contents

module PreCommit
  class Utils

    def self.staged_files(*dirs)
      dirs = reject_missing(dirs)

      @staged_files ||= {}
      @staged_files[dirs.join(' ')] ||= `git diff --cached --name-only --diff-filter=ACM #{dirs.join(' ')} | xargs`.chomp
    end

    def self.new_files(*dirs)
      @new_files ||= {}
      @new_files[dirs.join(' ')] ||= `git status --short #{dirs.join(' ')} | grep ^A | xargs`.chomp.split("A ").join(" ")
    end

    def self.reject_missing(dirs)
      dirs.reject { |dir| !File.exist?(dir) }
    end

    def self.grep
      grep_version = `grep --version | head -n 1 | sed -e 's/^[^0-9.]*\([0-9.]*\)$/\1/'`
      if grep_version =~ /FreeBSD/
        "grep -EnIH"
      else
        "grep -PnIH"
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pre-commit-0.8.1 lib/pre-commit/utils.rb
pre-commit-0.8.0 lib/pre-commit/utils.rb
pre-commit-0.7.0 lib/pre-commit/utils.rb