Sha256: 5dc065ce7fc48f60c31d2145bcc056a27ea61c8d34cac48ea9d0590d7444752e

Contents?: true

Size: 1.29 KB

Versions: 14

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module Mihari
  module Commands
    #
    # Search sub-commands
    #
    module Search
      class << self
        def included(thor)
          thor.class_eval do
            include Concerns::DatabaseConnectable

            desc "search PATH_OR_ID", "Search by a rule"
            around :with_db_connection
            method_option :force_overwrite, type: :boolean, default: false, aliases: "-f",
              desc: "Force overwriting a rule"
            #
            # Search by a rule
            #
            # @param [String] path_or_id
            #
            def search(path_or_id)
              force_overwrite = options["force_overwrite"] || false
              message = "Are you sure you want to overwrite this rule? (y/n)"

              # @type [Mihari::Models::Alert]
              alert = Dry::Monads::Try[StandardError] do
                # @type [Mihari::Rule]
                rule = Services::RuleBuilder.call(path_or_id)

                exit 0 if rule.diff? && !force_overwrite && !yes?(message)

                rule.update_or_create
                rule.call
              end.value!
              data = Entities::Alert.represent(alert)
              puts JSON.pretty_generate(data.as_json)
            end
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
mihari-7.6.4 lib/mihari/commands/search.rb
mihari-7.6.3 lib/mihari/commands/search.rb
mihari-7.6.2 lib/mihari/commands/search.rb
mihari-7.6.1 lib/mihari/commands/search.rb
mihari-7.6.0 lib/mihari/commands/search.rb
mihari-7.5.0 lib/mihari/commands/search.rb
mihari-7.4.0 lib/mihari/commands/search.rb
mihari-7.3.2 lib/mihari/commands/search.rb
mihari-7.3.1 lib/mihari/commands/search.rb
mihari-7.3.0 lib/mihari/commands/search.rb
mihari-7.2.0 lib/mihari/commands/search.rb
mihari-7.1.3 lib/mihari/commands/search.rb
mihari-7.1.2 lib/mihari/commands/search.rb
mihari-7.1.1 lib/mihari/commands/search.rb