Sha256: db095bd9d2376bb09daa5e0b4cba8a987e9e99205710a84f402fbf8860ecab20
Contents?: true
Size: 1.65 KB
Versions: 4
Compression:
Stored size: 1.65 KB
Contents
# frozen_string_literal: true module Mihari module Commands module Search include Mixins::Database include Mixins::ErrorNotification def self.included(thor) thor.class_eval do desc "search [RULE]", "Search by a rule" method_option :yes, type: :boolean, aliases: "-y", desc: "yes to overwrite the rule in the database" def search_by_rule(path_or_id) rule = Structs::Rule.from_path_or_id path_or_id # validate rule.validate! # check update id = rule.id yes = options["yes"] || false unless yes with_db_connection do rule_ = Mihari::Rule.find(id) next if rule.yaml == rule_.yaml return unless yes?("This operation will overwrite the rule in the database (Rule ID: #{id}). Are you sure you want to update the rule? (yes/no)") rescue ActiveRecord::RecordNotFound next end end analyzer = rule.to_analyzer with_error_notification do alert = analyzer.run if alert data = Mihari::Entities::Alert.represent(alert) puts JSON.pretty_generate(data.as_json) else Mihari.logger.info "There is no new artifact" end # record a rule with_db_connection do model = rule.to_model model.save rescue ActiveRecord::RecordNotUnique nil end end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
mihari-4.8.0 | lib/mihari/commands/search.rb |
mihari-4.7.4 | lib/mihari/commands/search.rb |
mihari-4.7.3 | lib/mihari/commands/search.rb |
mihari-4.7.2 | lib/mihari/commands/search.rb |