Sha256: 08fc9e628882812ec6c556d794eddb10fd9640dbe25686f9d1e6b52adbbb22b6

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

#!/usr/bin/env ruby
#
# Print a report on our Gemfile
# Why not just use `bundle outdated`? It doesn't give us the information we care about (and it fails).
#
at_exit do
  require "optparse"
  require "next_rails"

  options = {}
  option_parser = OptionParser.new do |opts|
    opts.banner = <<-EOS
      Usage: #{$0} [report-type] [options]

      report-type  There are two report types available: `outdated` and `compatibility`

      Examples:
        #{$0} compatibility --rails-version 5.0
        #{$0} outdated
    EOS

    opts.separator ""
    opts.separator "Options:"

    opts.on("--rails-version [STRING]", "Rails version to check compatibility against (defaults to 5.0)") do |rails_version|
      options[:rails_version] = rails_version
    end

    opts.on("--include-rails-gems", "Include Rails gems in compatibility report (defaults to false)") do
      options[:include_rails_gems] = true
    end

    opts.on_tail("-h", "--help", "Show this message") do
      puts opts
      exit
    end
  end

  begin
    option_parser.parse!
  rescue OptionParser::ParseError => e
    STDERR.puts e.message.red
    puts option_parser
    exit 1
  end

  report_type = ARGV.first

  case report_type
  when "outdated" then BundleReport.outdated
  else
    TenYearsRails::BundleReport.compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
  end
end

# Needs to happen first
require "bundler/setup"

require "action_view"
require "active_support/core_ext/object/acts_like"

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
next_rails-1.0.0 exe/bundle_report