Skip to content

Commit

Permalink
Extend config_from_args instead of overriding main
Browse files Browse the repository at this point in the history
  • Loading branch information
psrok1 committed Jul 27, 2023
1 parent 011057e commit 8700565
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions karton/yaramatcher/yaramatcher.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import argparse
import logging
import os
import re
Expand Down Expand Up @@ -96,18 +97,15 @@ def args_parser(cls):
return parser

@classmethod
def main(cls):
parser = cls.args_parser()
args = parser.parse_args()
def config_from_args(cls, config: Config, args: argparse.Namespace) -> None:
super().config_from_args(config, args)
config.load_from_dict({"yaramatcher": {"rules": args.rules}})

config = Config(args.config_file)
cls.config_from_args(config, args)
service = cls(config=config, yara_rule_dir=args.rules)
service.loop()

def __init__(self, yara_rule_dir: Optional[str] = None, *args, **kwargs) -> None:
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.yara_handler = YaraHandler(path=yara_rule_dir or "rules")
self.yara_handler = YaraHandler(
path=self.config.get("yaramatcher", "rules", "rules")
)

def scan_sample(self, sample: bytes) -> List[str]:
# Get all matches for this sample
Expand Down

0 comments on commit 8700565

Please sign in to comment.