#!/usr/pkg/bin/ruby193
#
# = Synopsis
#
# Collect and display facts about the system.
#
# = Usage
#
#   facter [-d|--debug] [-h|--help] [-p|--puppet] [-v|--version] [-y|--yaml] [-j|--json] [--external-dir DIR] [--no-external-dir] [fact] [fact] [...]
#
# = Description
#
# Collect and display facts about the current system.  The library behind
# Facter is easy to expand, making Facter an easy way to collect information
# about a system from within the shell or within Ruby.
#
# If no facts are specifically asked for, then all facts will be returned.
#
# = Options
#
# yaml::
#   Emit facts in YAML format.
#
# json::
#   Emit facts in JSON format.
#
# puppet::
#   Load the Puppet libraries, thus allowing Facter to load Puppet-specific facts.
#
# version::
#   Print the version and exit.
#
# help::
#   Print this help message.
#
# debug::
#   Enable debugging.
#
# trace::
#   Enable backtraces.
#
# timing::
#   Enable timing.
#
# facts.d::
#   The directory to use for external facts.
#
# = Example
#
#   facter kernel
#
# = Author
#
# Luke Kanies
#
# = Copyright
#
# Copyright (c) 2011 Puppet Labs, Inc
# Licensed under the Apache 2.0 license

# Bundler and rubygems maintain a set of directories from which to
# load gems. If Bundler is loaded, let it determine what can be
# loaded. If it's not loaded, then use rubygems. But do this before
# loading any facter code, so that our gem loading system is sane.
if not defined? ::Bundler
  begin
    require 'rubygems'
  rescue LoadError
  end
end

require 'facter/application'

Facter::Application.run(ARGV)
