Sha256: 755585cee3cbf9d72a2487efd4a82a5868943dd28052471e453c6bc93d991b2e

Contents?: true

Size: 1.38 KB

Versions: 14

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

module Karafka
  module Web
    module Management
      module Actions
        # Extends the boot file with Web components
        class ExtendBootFile < Base
          # Code that is needed in the `karafka.rb` to connect Web UI to Karafka
          ENABLER_CODE = 'Karafka::Web.enable!'

          # Template with initial Web UI configuration
          # Session secret needs to be set per user and per env
          SETUP_TEMPLATE = <<~CONFIG.freeze
            Karafka::Web.setup do |config|
              # You may want to set it per ENV. This value was randomly generated.
              config.ui.sessions.secret = '#{SecureRandom.hex(32)}'
            end

            #{ENABLER_CODE}
          CONFIG

          # Adds needed code
          def call
            # We detect this that way so in case our template or user has enabled as a comment
            # it still adds the template and runs install
            if File.readlines(Karafka.boot_file).any? { |line| line.start_with?(ENABLER_CODE) }
              puts "Web UI #{already} installed."
            else
              puts 'Updating the Karafka boot file...'
              File.open(Karafka.boot_file, 'a') do |f|
                f << "\n#{SETUP_TEMPLATE}\n"
              end
              puts "Karafka boot file #{successfully} updated."
            end
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
karafka-web-0.10.3 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.10.2 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.10.1 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.10.0 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.10.0.rc2 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.10.0.rc1 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.10.0.beta1 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.9.1 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.9.0 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.9.0.rc3 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.9.0.rc2 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.9.0.rc1 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.8.2 lib/karafka/web/management/actions/extend_boot_file.rb
karafka-web-0.8.1 lib/karafka/web/management/actions/extend_boot_file.rb