Sha256: 8dba84cb84cfe56775e88e9679b5453f400e32afde2762fd13d6c6900c6e772b

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

#!/usr/bin/env ruby

# Creat list of inventory devices based on device model 

require 'trollop'
require 'json'
require 'logger'
require 'syslog/logger'
require 'bjn_inventory'

parser = Trollop::Parser.new do
    version BjnInventory::VERSION
    banner <<-USAGE.gsub(/^\s{8}/,'')
        Usage:
          inventory-devices [options]
    USAGE

    opt :key, 'Specify the key of inventory hash', required: true, type: :string
    opt :manifest, 'Specify the manifest that defines this inventory', required: true, type: :string
    opt :debug, 'Enable debug output', :short => '-D'
    opt :syslog, 'Log to Syslog', :short => '-S'
    stop_on_unknown
end

opt = Trollop::with_standard_exception_handling parser do
    parser.parse(ARGV)
end

logger = opt[:syslog]? Syslog::Logger.new('inventory-devices') : Logger.new(STDERR)
logger.level = opt[:debug]? Logger::DEBUG : Logger::WARN

manifest = JSON.parse(File.read(opt[:manifest]))
inventory = BjnInventory::Inventory.new(manifest.merge({logger: logger}))
puts JSON.pretty_generate(inventory.by(opt[:key]))

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bjn_inventory-1.3.1 bin/inventory_model
bjn_inventory-1.3.0 bin/inventory_model