Sha256: 00aaf46421f154dcf09247fd0d867cee6115e1a542ccc2f37a0fba64f651f8dd

Contents?: true

Size: 984 Bytes

Versions: 2

Compression:

Stored size: 984 Bytes

Contents

#!/usr/bin/env ruby
require 'json'
require 'ostruct'
require 'optparse'

require 'hrw'

ARGV << '--help' if ARGV.empty?

options = OpenStruct.new(json: false)
OptionParser.new do |opt|
  opt.banner = "usage: #{__FILE__} [OPTIONS]"

  opt.on('-u', '--url [URL]', 'remote api url') do |url|
    options.url = url
  end

  opt.on('--json', 'output as json') do
    options.json = true
  end
end.parse!

if options.url.nil?
  if ENV.key?(Hrw::ENV)
    options.url = ENV[Hrw::ENV]
  else
    puts '[-] no url'
    exit(1)
  end
end

scanner = Hrw::Detector.detect
if scanner.nil?
  puts '[-] can not detect package manager, skip'
  exit(0)
end

specs = scanner.scan

api = Hrw::API.new(options.url)
hash = api.submit(specs, scanner.package_manager)
result = api.retrieve(hash)

formatter = Hrw::Formatter.new
if options.json
  deps = formatter.filter(result)
  puts JSON.pretty_generate(deps)

  ret = deps.empty? ? 0 : 1
else
  ret = formatter.pretty_print(result) ? 1 : 0
end

exit(ret)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hrw-0.3.8 exe/hrw
hrw-0.3.7 exe/hrw