#!/opt/cinc-project/embedded/bin/ruby --disable-gems
#--APP_BUNDLER_BINSTUB_FORMAT_VERSION=1--
require "rubygems"

# this works around OpenSSL FIPS fingerprint matching issue where
# it expects to be loaded in image base known at compile time. We
# load OpenSSL early so that the shared library gets loaded in its
# preferred image base address
require "openssl"

begin
  # this works around rubygems/rubygems#2196 and can be removed in rubygems > 2.7.6
  require "rubygems/bundler_version_finder"
rescue LoadError
  # probably means rubygems is too old or too new to have this class, and we don't care
end

# avoid appbundling if we are definitely running within a Bundler bundle.
# most likely the check for defined?(Bundler) is enough since we don't require
# bundler above, but just for paranoia's sake also we test to see if Bundler is
# really doing its thing or not.
unless defined?(Bundler) && Bundler.instance_variable_defined?("@load")
  ENV["GEM_HOME"] = ENV["GEM_PATH"] = nil unless ENV["APPBUNDLER_ALLOW_RVM"] == "true"
  ::Gem.clear_paths

  gem "highline", "= 1.7.10"
  gem "ffi-yajl", "= 2.4.0"
  gem "libyajl2", "= 2.1.0"
  gem "pry", "= 0.14.1"
  gem "coderay", "= 1.1.3"
  gem "method_source", "= 1.0.0"
  gem "rb-readline", "= 0.5.5"
  gem "pg", "= 1.2.3"
  gem "redis", "= 4.5.1"
  gem "rest-client", "= 2.1.0"
  gem "http-accept", "= 1.7.0"
  gem "http-cookie", "= 1.0.4"
  gem "domain_name", "= 0.5.20190701"
  gem "unf", "= 0.1.4"
  gem "unf_ext", "= 0.0.8"
  gem "mime-types", "= 3.3.1"
  gem "mime-types-data", "= 3.2021.0901"
  gem "netrc", "= 0.11.0"
  gem "knife-opc", "= 0.4.7"
  gem "mixlib-log", "= 3.0.9"
  gem "uuidtools", "= 2.2.0"
  gem "veil", "= 0.3.9"
  gem "bcrypt", "= 3.1.16"
  gem "pbkdf2", "= 0.1.0"
  gem "chef_backup", "= 0.1.1"
  gem "chef-utils", "= 16.13.16"
  gem "mixlib-shellout", "= 3.2.5"
  gem "omnibus-ctl", "= 0.6.4"
  gem "license-acceptance", "= 2.1.13"
  gem "pastel", "= 0.8.0"
  gem "tty-color", "= 0.6.0"
  gem "tomlrb", "= 1.3.0"
  gem "tty-box", "= 0.7.0"
  gem "strings", "= 0.2.1"
  gem "strings-ansi", "= 0.2.0"
  gem "unicode-display_width", "= 2.1.0"
  gem "unicode_utils", "= 1.4.0"
  gem "tty-cursor", "= 0.7.1"
  gem "tty-prompt", "= 0.23.1"
  gem "tty-reader", "= 0.9.0"
  gem "tty-screen", "= 0.8.1"
  gem "wisper", "= 2.0.1"
  gem "appbundler", "= 0.13.4"
  gem "mixlib-cli", "= 2.1.8"
  gem "chef", "= 16.13.16"
  gem "addressable", "= 2.8.0"
  gem "public_suffix", "= 4.0.6"
  gem "bcrypt_pbkdf", "= 1.1.0"
  gem "chef-config", "= 16.13.16"
  gem "fuzzyurl", "= 0.9.0"
  gem "mixlib-config", "= 3.0.9"
  gem "chef-vault", "= 4.1.4"
  gem "chef-zero", "= 15.0.11"
  gem "hashie", "= 4.1.0"
  gem "rack", "= 2.2.3"
  gem "webrick", "= 1.7.0"
  gem "diff-lcs", "= 1.3"
  gem "ed25519", "= 1.2.4"
  gem "erubis", "= 2.7.0"
  gem "ffi", "= 1.15.4"
  gem "ffi-libarchive", "= 1.1.3"
  gem "iniparse", "= 1.5.0"
  gem "inspec-core", "= 4.52.9"
  gem "chef-telemetry", "= 1.1.1"
  gem "concurrent-ruby", "= 1.1.9"
  gem "faraday", "= 1.4.3"
  gem "faraday-em_http", "= 1.0.0"
  gem "faraday-em_synchrony", "= 1.0.0"
  gem "faraday-excon", "= 1.1.0"
  gem "faraday-net_http", "= 1.0.1"
  gem "faraday-net_http_persistent", "= 1.2.0"
  gem "multipart-post", "= 2.1.1"
  gem "ruby2_keywords", "= 0.0.5"
  gem "faraday_middleware", "= 1.2.0"
  gem "parallel", "= 1.21.0"
  gem "parslet", "= 1.8.2"
  gem "rspec", "= 3.10.0"
  gem "rspec-core", "= 3.10.1"
  gem "rspec-support", "= 3.10.2"
  gem "rspec-expectations", "= 3.10.1"
  gem "rspec-mocks", "= 3.10.2"
  gem "rspec-its", "= 1.3.0"
  gem "rubyzip", "= 2.3.2"
  gem "semverse", "= 3.0.0"
  gem "sslshake", "= 1.3.1"
  gem "thor", "= 1.1.0"
  gem "train-core", "= 3.8.1"
  gem "json", "= 2.6.0"
  gem "net-scp", "= 3.0.0"
  gem "net-ssh", "= 6.1.0"
  gem "tty-table", "= 0.12.0"
  gem "mixlib-archive", "= 1.1.7"
  gem "mixlib-authentication", "= 3.0.10"
  gem "net-sftp", "= 3.0.0"
  gem "net-ssh-multi", "= 1.2.1"
  gem "net-ssh-gateway", "= 2.0.0"
  gem "ohai", "= 16.13.0"
  gem "ipaddress", "= 0.8.3"
  gem "plist", "= 3.6.0"
  gem "wmi-lite", "= 1.0.5"
  gem "proxifier", "= 1.0.3"
  gem "syslog-logger", "= 1.6.8"
  gem "train-winrm", "= 0.2.12"
  gem "winrm", "= 2.3.6"
  gem "builder", "= 3.2.4"
  gem "erubi", "= 1.10.0"
  gem "gssapi", "= 1.3.1"
  gem "gyoku", "= 1.3.1"
  gem "httpclient", "= 2.8.3"
  gem "logging", "= 2.3.0"
  gem "little-plugger", "= 1.1.4"
  gem "multi_json", "= 1.15.0"
  gem "nori", "= 2.6.0"
  gem "rubyntlm", "= 0.6.3"
  gem "winrm-elevated", "= 1.2.3"
  gem "winrm-fs", "= 1.3.5"
  gem "knife-ec-backup", "= 2.5.3"
  gem "knife-tidy", "= 2.1.2"
  gem "sequel", "= 5.49.0"
  gem "chef_fixie", "= 1.0.3"
  gem "mixlib-install", "= 3.12.16"
  gem "mixlib-versioning", "= 1.2.12"
  gem "chefstyle", "= 2.1.3"
  gem "rubocop", "= 1.23.0"
  gem "parser", "= 3.0.2.0"
  gem "ast", "= 2.4.2"
  gem "rainbow", "= 3.0.0"
  gem "regexp_parser", "= 2.1.1"
  gem "rexml", "= 3.2.5"
  gem "rubocop-ast", "= 1.13.0"
  gem "ruby-progressbar", "= 1.11.0"
  gem "rake", "= 13.0.6"
  gem "berkshelf", "= 7.2.2"
  gem "cleanroom", "= 1.0.0"
  gem "minitar", "= 0.9"
  gem "octokit", "= 4.21.0"
  gem "sawyer", "= 0.8.2"
  gem "retryable", "= 3.0.5"
  gem "solve", "= 4.0.4"
  gem "molinillo", "= 0.8.0"
  gem "chef-server-ctl", "= 1.1.0"
  gem "bundler" # force activation of bundler to avoid unresolved specs if there are multiple bundler versions
  spec = Gem::Specification.find_by_name("chef-server-ctl", "= 1.1.0")
else
  spec = Gem::Specification.find_by_name("chef-server-ctl")
end

unless Gem::Specification.unresolved_deps.empty?
  $stderr.puts "APPBUNDLER WARNING: unresolved deps are CRITICAL performance bug, this MUST be fixed"
  Gem::Specification.reset
end

bin_file = spec.bin_file("cinc-server-ctl")

Kernel.load(bin_file)
