Sha256: 44b8a7becfc221f180268e39b1c1a38db5635821f1d93434e446566905142f6c

Contents?: true

Size: 1.68 KB

Versions: 5

Compression:

Stored size: 1.68 KB

Contents

#!/usr/bin/env ruby

if ENV['HACKING']
  require_relative '../lib/cloudstrap'
else
  require 'cloudstrap'
end

require 'faraday'
require 'tty-table'
require 'pastel'

CLOUDSTRAP_VERSION = $LOADED_FEATURES
                       .map { |f| f.match %r{cloudstrap-(?<version>[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(\.pre)?)} }
                       .compact
                       .map { |m| m['version'] }
                       .uniq
                       .first

gem = ->(name) { MultiJson.load Faraday.new(Gem.host).get("/api/v1/gems/#{name}.json").body }
latest_cloudstrap = gem.(:cloudstrap)['version']

config = Cloudstrap::Config.new

green = Pastel.new.green.detach
red = Pastel.new.red.detach

cloudstrap = (CLOUDSTRAP_VERSION.end_with?('pre') ? red : green).call CLOUDSTRAP_VERSION
latest = ->(component) { config.send(:latest).send(component) }
using  = ->(component) { config.send("#{component}_version") }

version = ->(component) { (using.(component) == latest.(component) ? green : red).call using.(component) }

table = TTY::Table.new %w(component using latest), [
                         ['cloudstrap', cloudstrap, green.(latest_cloudstrap)],
                         [:hce, version.(:hce), green.(latest.(:hce))],
                         [:hcp, version.(:hcp), green.(latest.(:hcp))],
                         [:hsm, version.(:hsm), green.(latest.(:hsm))]
                       ]

case ARGV.first
when nil, /^--?(p(retty)?|u(nicode)?)$/i
  puts table.render(:unicode)
when /^--?a(scii)?$/i
  puts table.render(:ascii)
when /^--?b(asic)?$/i
  puts Pastel.new.strip table.render(:basic)
else
  STDERR.puts "usage: #{File.basename $PROGRAM_NAME} (--pretty | --unicode | --ascii | --basic)"
  abort
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
cloudstrap-0.47.8.pre bin/cloudstrap-versions
cloudstrap-0.47.7.pre bin/cloudstrap-versions
cloudstrap-0.47.2.pre bin/cloudstrap-versions
cloudstrap-0.47.0.pre bin/cloudstrap-versions
cloudstrap-0.46.7.pre bin/cloudstrap-versions