Sha256: adb7c4443f2044edd61bcafc5a3566ef5c5b0f386e8b954479e5ef78a5dfbbc0

Contents?: true

Size: 1.34 KB

Versions: 7

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

module Karafka
  # Karafka framework Cli
  class Cli < Thor
    # Server Karafka Cli action
    class Server < Base
      include Helpers::Colorize

      desc 'Start the Karafka server (short-cut alias: "s")'
      option aliases: 's'
      option :consumer_groups, type: :array, default: [], aliases: :g
      option :subscription_groups, type: :array, default: []
      option :topics, type: :array, default: []

      # Start the Karafka server
      def call
        # Print our banner and info in the dev mode
        print_marketing_info if Karafka::App.env.development?

        active_routing_config = Karafka::App.config.internal.routing.active
        active_routing_config.consumer_groups = cli.options[:consumer_groups]
        active_routing_config.subscription_groups = cli.options[:subscription_groups]
        active_routing_config.topics = cli.options[:topics]

        Karafka::Server.run
      end

      private

      # Prints marketing info
      def print_marketing_info
        Karafka.logger.info Info::BANNER

        if Karafka.pro?
          Karafka.logger.info(
            green('Thank you for using Karafka Pro!')
          )
        else
          Karafka.logger.info(
            red('Upgrade to Karafka Pro for more features and support: https://karafka.io')
          )
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
karafka-2.0.29 lib/karafka/cli/server.rb
karafka-2.0.28 lib/karafka/cli/server.rb
karafka-2.0.27 lib/karafka/cli/server.rb
karafka-2.0.26 lib/karafka/cli/server.rb
karafka-2.0.24 lib/karafka/cli/server.rb
karafka-2.0.23 lib/karafka/cli/server.rb
karafka-2.0.22 lib/karafka/cli/server.rb