Skip to content

Commit aaf5fcd

Browse files
addec cli command for rule evaluation on messages
1 parent 9b0a75c commit aaf5fcd

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

setup.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@
4747
"sifter": ['py.typed']
4848
},
4949
entry_points={
50+
'console_scripts': [
51+
'sifter = sifter.cli:main'
52+
],
5053
'sifter_extensions': [
5154
# sifter commands
5255
'discard = sifter.commands.discard:CommandDiscard',

sifter/cli.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from argparse import ArgumentParser
2+
import email
3+
import os
4+
import logging
5+
import sys
6+
7+
import sifter.parser
8+
9+
10+
def main() -> None:
11+
arg_parser = ArgumentParser()
12+
arg_parser.add_argument('rulefile')
13+
arg_parser.add_argument('messagefile')
14+
args = arg_parser.parse_args()
15+
16+
if not os.path.isfile(args.rulefile):
17+
logging.error("rulefile '%s' does not exist", args.rulefile)
18+
sys.exit(1)
19+
20+
if not os.path.isfile(args.messagefile):
21+
logging.error("mail message '%s' does not exist", args.messagefile)
22+
sys.exit(1)
23+
24+
rules = sifter.parser.parse_file(open(args.rulefile))
25+
msg = email.message_from_file(open(args.messagefile))
26+
msg_actions = rules.evaluate(msg)
27+
print(msg_actions)

0 commit comments

Comments
 (0)