Sha256: ef5b2f0d661a76ee30c47220148bd56de4081f49c66b3adeec015fd9de25ecf9

Contents?: true

Size: 1.58 KB

Versions: 3

Compression:

Stored size: 1.58 KB

Contents

require 'shopify_cli'

module ShopifyCli
  module Core
    module EntryPoint
      class << self
        def call(args, ctx = Context.new)
          # Check if the shim is set up by checking whether the old Finalizer FD exists
          begin
            is_shell_shim = false
            IO.open(9) { is_shell_shim = true }
          rescue Errno::EBADF
            # This is expected if the descriptor doesn't exist
          rescue ArgumentError => e
            # This can happen on RVM, because it can use fd 9 itself and block access to it. That only happens if the fd
            # did not exist beforehand, so that means there was no fd 9 before Ruby started.
            unless e.message == 'The given fd is not accessible because RubyVM reserves it'
              raise e
            end
          end

          if !ctx.testing? && is_shell_shim
            ctx.puts(ctx.message('core.warning.shell_shim'))
            return
          end

          if ctx.development?
            ctx.puts(
              ctx.message('core.warning.development_version', File.join(ShopifyCli::ROOT, 'bin', ShopifyCli::TOOL_NAME))
            )
          end

          ProjectType.load_type(Project.current_project_type)

          task_registry = ShopifyCli::Tasks::Registry

          command, command_name, args = ShopifyCli::Resolver.call(args)
          executor = ShopifyCli::Core::Executor.new(ctx, task_registry, log_file: ShopifyCli.log_file)
          ShopifyCli::Core::Monorail.log(command_name, args) do
            executor.call(command, command_name, args)
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shopify-cli-1.1.1 lib/shopify-cli/core/entry_point.rb
shopify-cli-1.1.0 lib/shopify-cli/core/entry_point.rb
shopify-cli-1.0.5 lib/shopify-cli/core/entry_point.rb