Sha256: 0c4415f6bcb64b44eac7a58e070226898103bdbda4cf7f9c29e69352aeb7e08c

Contents?: true

Size: 1.68 KB

Versions: 2

Compression:

Stored size: 1.68 KB

Contents

require 'fileutils'
require 'open-uri'
require 'json'
require 'erb'


module Bourdain
  module Checks
    class Check < Bourdain::Resource
    protected
      def gemfile_version gem_name
        gemfile_lock = File.read 'Gemfile.lock'
        gemfile_lock =~ /#{gem_name} \((.*?)\)/
        $1
      end

      def rubygems_version gem_name
        versions_url = "https://rubygems.org/api/v1/versions/#{gem_name}.json"
        open(versions_url) do |f|
          versions = JSON::parse f.read
          versions = versions.sort_by { |v| v['number'] }
          versions.last['number']
        end
      end

      def repo_dir repo
        File.join(Dir.pwd, repo)
      end

      def work_tree repo
        "--work-tree=#{repo_dir repo}"
      end

      def git_dir repo
        "--git-dir=#{File.join repo_dir(repo), '.git'}"
      end

      def youre_behind? repo
        `git fetch #{repo_dir repo} >/dev/null 2>&1`
        raise unless $?.exitstatus.zero?
        `git #{git_dir repo} log ..origin/master --oneline`.split("\n").length > 0
        raise unless $?.exitstatus.zero?
      end

      def youre_ahead? repo
        `git fetch #{repo_dir repo} >/dev/null 2>&1`
        raise unless $?.exitstatus.zero?
        `git #{git_dir repo} log origin/master.. --oneline`.split("\n").length > 0
        raise unless $?.exitstatus.zero?
      end

      def youre_dirty? repo
        `git #{git_dir repo} #{work_tree repo} diff HEAD --numstat`.split("\n").length > 0
        raise unless $?.exitstatus.zero?
      end
    end
  end
end

require_relative 'checks/chef'
require_relative 'checks/hooks'
require_relative 'checks/bourdain'
require_relative 'checks/cookbooks'
require_relative 'checks/ssh_config'

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bourdain-1.2.17 lib/bourdain/resources/checks.rb
bourdain-1.2.16 lib/bourdain/resources/checks.rb