self.run

in lib/gdk/command.rb [56:87]


    def self.run(argv)
      name = argv.shift
      command = ::GDK::Command::COMMANDS[name]

      if command
        klass = command.call

        check_gem_version!
        validate_config! if klass.validate_config?
        result = GDK::Telemetry.with_telemetry(name) { klass.new.run(argv) }

        exit result
      else
        suggestions = DidYouMean::SpellChecker.new(dictionary: ::GDK::Command::COMMANDS.keys).correct(name)
        message = ["#{name} is not a GDK command"]

        if suggestions.any?
          message << ', did you mean - '
          message << suggestions.map { |suggestion| "'gdk #{suggestion}'" }.join(' or ')
          message << '?'
        else
          message << '.'
        end

        GDK::Output.warn message.join
        GDK::Output.puts

        GDK::Output.info "See 'gdk help' for more detail."
        false
      end
    end