Class: ChefCLI::Command::Env

Inherits:
Base
  • Object
show all
Defined in:
lib/chef-cli/command/env.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#check_license_acceptance, #needs_help?, #needs_version?, #run_with_default_options

Methods included from Helpers

#err, #git_bin_dir, #git_windows_bin_dir, #msg, #omnibus_bin_dir, #omnibus_embedded_bin_dir, #omnibus_env, #omnibus_expand_path, #omnibus_install?, #omnibus_root, #package_home, #stderr, #stdout, #system_command, #usr_bin_path, #usr_bin_prefix

Constructor Details

#initialize(*args) ⇒ Env

Returns a new instance of Env.



36
37
38
39
# File 'lib/chef-cli/command/env.rb', line 36

def initialize(*args)
  super
  @ui = UI.new
end

Instance Attribute Details

#uiObject

Returns the value of attribute ui.



34
35
36
# File 'lib/chef-cli/command/env.rb', line 34

def ui
  @ui
end

Instance Method Details

#gem_environmentObject



74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/chef-cli/command/env.rb', line 74

def gem_environment
  h = {}
  h["GEM ROOT"] = omnibus_env["GEM_ROOT"]
  h["GEM HOME"] = omnibus_env["GEM_HOME"]
  h["GEM PATHS"] = omnibus_env["GEM_PATH"].split(File::PATH_SEPARATOR)
rescue OmnibusInstallNotFound
  h["GEM_ROOT"] = ENV["GEM_ROOT"] if ENV.key?("GEM_ROOT")
  h["GEM_HOME"] = ENV["GEM_HOME"] if ENV.key?("GEM_HOME")
  h["GEM PATHS"] = ENV["GEM_PATH"].split(File::PATH_SEPARATOR) if ENV.key?("GEM_PATH") && !ENV.key?("GEM_PATH").nil?
ensure
  h
end

#pathsObject



87
88
89
90
91
# File 'lib/chef-cli/command/env.rb', line 87

def paths
  omnibus_env["PATH"].split(File::PATH_SEPARATOR)
rescue OmnibusInstallNotFound
  ENV["PATH"].split(File::PATH_SEPARATOR)
end

#policyfile_configObject



93
94
95
96
97
98
# File 'lib/chef-cli/command/env.rb', line 93

def policyfile_config
  {}.tap do |h|
    h["Cache Path"] = CookbookOmnifetch.cache_path
    h["Storage Path"] = CookbookOmnifetch.storage_path.to_s
  end
end

#ruby_infoObject



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/chef-cli/command/env.rb', line 62

def ruby_info
  {}.tap do |ruby|
    ruby["Executable"] = Gem.ruby
    ruby["Version"] = RUBY_VERSION
    ruby["RubyGems"] = {}.tap do |rubygems|
      rubygems["RubyGems Version"] = Gem::VERSION
      rubygems["RubyGems Platforms"] = Gem.platforms.map(&:to_s)
      rubygems["Gem Environment"] = gem_environment
    end
  end
end

#run(params) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/chef-cli/command/env.rb', line 41

def run(params)
  info = {}
  info[ChefCLI::Dist::PRODUCT] = workstation_info
  info["Ruby"] = ruby_info
  info["Path"] = paths
  ui.msg YAML.dump(info)
end

#workstation_infoObject



49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/chef-cli/command/env.rb', line 49

def workstation_info
  info = {}
  if omnibus_install?
    info["Version"] = ChefCLI::VERSION
    info["Home"] = package_home
    info["Install Directory"] = omnibus_root
    info["Policyfile Config"] = policyfile_config
  else
    info["Version"] = "Not running from within Workstation"
  end
  info
end