diff options
author | Matt Woodson <mwoodson@gmail.com> | 2016-01-20 15:01:38 -0500 |
---|---|---|
committer | Matt Woodson <mwoodson@gmail.com> | 2016-01-20 15:01:38 -0500 |
commit | 9410cdff9342fae80a3149c530b819e473996cce (patch) | |
tree | cf26be9b05f3b97dbdafb7bae109b0707da0a0d4 /git/yaml_validation.rb | |
parent | a2b745039bce597d419b03fdce39b4c6c69139f6 (diff) | |
parent | bdedb63403ea582c4aaa5f56caed302f51744de2 (diff) | |
download | openshift-9410cdff9342fae80a3149c530b819e473996cce.tar.gz openshift-9410cdff9342fae80a3149c530b819e473996cce.tar.bz2 openshift-9410cdff9342fae80a3149c530b819e473996cce.tar.xz openshift-9410cdff9342fae80a3149c530b819e473996cce.zip |
Merge pull request #1247 from openshift/master
Merge master into prod
Diffstat (limited to 'git/yaml_validation.rb')
-rwxr-xr-x | git/yaml_validation.rb | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/git/yaml_validation.rb b/git/yaml_validation.rb deleted file mode 100755 index f5ded7a78..000000000 --- a/git/yaml_validation.rb +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env ruby -# -# -# -require 'yaml' -require 'tmpdir' - -class YamlValidate - def self.yaml_file?(filename) - return filename.end_with?('.yaml') || filename.end_with?('.yml') - end - - def self.short_yaml_ext?(filename) - return filename.end_with?(".yml") - end - - def self.valid_yaml?(filename) - YAML::load_file(filename) - - return true - end -end - -class GitCommit - attr_accessor :oldrev, :newrev, :refname, :tmp - def initialize(oldrev, newrev, refname) - @oldrev = oldrev - @newrev = newrev - @refname = refname - @tmp = Dir.mktmpdir(@newrev) - end - - def get_file_changes() - files = %x[/usr/bin/git diff --name-only #{@oldrev} #{@newrev} --diff-filter=ACM].split("\n") - - # if files is empty we will get a full checkout. This happens on - # a git rm file. If there are no changes then we need to skip the archive - return [] if files.empty? - - # We only want to take the files that changed. Archive will do that when passed - # the filenames. It will export these to a tmp dir - system("/usr/bin/git archive #{@newrev} #{files.join(" ")} | tar x -C #{@tmp}") - return Dir.glob("#{@tmp}/**/*").delete_if { |file| File.directory?(file) } - end -end - -if __FILE__ == $0 - while data = STDIN.gets - oldrev, newrev, refname = data.split - gc = GitCommit.new(oldrev, newrev, refname) - - results = [] - gc.get_file_changes().each do |file| - begin - puts "++++++ Received: #{file}" - - #raise "Yaml file extensions must be .yaml not .yml" if YamlValidate.short_yaml_ext? file - - # skip readme, other files, etc - next unless YamlValidate.yaml_file?(file) - - results << YamlValidate.valid_yaml?(file) - rescue Exception => ex - puts "\n#{ex.message}\n\n" - results << false - end - end - - #puts "RESULTS\n#{results.inspect}\n" - exit 1 if results.include?(false) - end -end |