Sha256: ee74169a30bdc72fee53b104de6232a5ae76329f9a6b0c232c848f64ad1b8126

Contents?: true

Size: 951 Bytes

Versions: 2

Compression:

Stored size: 951 Bytes

Contents

#!/usr/bin/ruby
require 'colorize'

def switch_dir
  if File.directory?('.git')
    return
  end

  Dir.chdir '..'
  switch_dir
end

begin
  stage = `git diff --cached --name-only`.strip
  if stage == ''
    exit 0
  end

  @pass = true

  files = stage.split("\n")

  count = 0

  files.each do |file|
    if File.extname(file) == '.java'

      current_path = Dir.pwd
      switch_dir

      result = `java -jar #{Dir.pwd}/_script/checkstyle-7.0.jar -c #{Dir.pwd}/_script/checkstyle.xml #{Dir.pwd}/#{file}`
      result = result.gsub("Starting audit...\n", '')
      result = result.gsub("Audit done.\n", '')

      if result.include?('WARN') || result.include?('ERROR')
        count = count + 1
        puts "#{count}、 #{result}\n".red
        @pass = false
      elsif result.strip != ''
        puts result
      end

      Dir.chdir current_path
    end
  end

  unless @pass
    exit 1
  end
rescue => e
  puts "error: #{e}".red
  exit 1
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ggsm-1.5.1 lib/ggsm/hook/pre-commit
ggsm-1.5.0 lib/ggsm/hook/pre-commit