diff options
Diffstat (limited to 'python-parsuricata.spec')
| -rw-r--r-- | python-parsuricata.spec | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/python-parsuricata.spec b/python-parsuricata.spec new file mode 100644 index 0000000..5ef08e9 --- /dev/null +++ b/python-parsuricata.spec @@ -0,0 +1,259 @@ +%global _empty_manifest_terminate_build 0 +Name: python-parsuricata +Version: 0.3.3 +Release: 1 +Summary: Parse Suricata rules +License: MIT +URL: https://github.com/theY4Kman/parsuricata +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4c/3a/1aecf4588d1f35cbd261821a0c6f7ee5d0106563bb9e7adc0c0e02964f05/parsuricata-0.3.3.tar.gz +BuildArch: noarch + +Requires: python3-lark-parser + +%description +# parsuricata + +Parse Suricata rules + + +# Installation + +```bash +pip install parsuricata +``` + + +# Usage + +```python +from parsuricata import parse_rules + +source = ''' + alert http $HOME_NET any -> !$HOME_NET any (msg: "hi mum!"; content: "heymum"; http_uri; sid: 1;) +''' + +rules = parse_rules(source) +print(rules) +# +# alert http $HOME_NET any -> !$HOME_NET any ( \ +# msg: hi mum!; \ +# content: heymum; \ +# http_uri; \ +# sid: 1; \ +# ) + +rule = rules[0] + +print(rule.action) +# alert + +print(rule.protocol) +# http + +print(rule.src) +# $HOME_NET + +print(rule.src_port) +# any + +print(rule.direction) +# -> + +print(rule.dst) +# !$HOME_NET + +print(rule.dst_port) +# any + +for option in rule.options: + print(f'{option.keyword} = {option.settings}') +# +# msg = hi mum! +# content = heymum +# http_uri = None +# sid = 1 +``` + + +%package -n python3-parsuricata +Summary: Parse Suricata rules +Provides: python-parsuricata +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-parsuricata +# parsuricata + +Parse Suricata rules + + +# Installation + +```bash +pip install parsuricata +``` + + +# Usage + +```python +from parsuricata import parse_rules + +source = ''' + alert http $HOME_NET any -> !$HOME_NET any (msg: "hi mum!"; content: "heymum"; http_uri; sid: 1;) +''' + +rules = parse_rules(source) +print(rules) +# +# alert http $HOME_NET any -> !$HOME_NET any ( \ +# msg: hi mum!; \ +# content: heymum; \ +# http_uri; \ +# sid: 1; \ +# ) + +rule = rules[0] + +print(rule.action) +# alert + +print(rule.protocol) +# http + +print(rule.src) +# $HOME_NET + +print(rule.src_port) +# any + +print(rule.direction) +# -> + +print(rule.dst) +# !$HOME_NET + +print(rule.dst_port) +# any + +for option in rule.options: + print(f'{option.keyword} = {option.settings}') +# +# msg = hi mum! +# content = heymum +# http_uri = None +# sid = 1 +``` + + +%package help +Summary: Development documents and examples for parsuricata +Provides: python3-parsuricata-doc +%description help +# parsuricata + +Parse Suricata rules + + +# Installation + +```bash +pip install parsuricata +``` + + +# Usage + +```python +from parsuricata import parse_rules + +source = ''' + alert http $HOME_NET any -> !$HOME_NET any (msg: "hi mum!"; content: "heymum"; http_uri; sid: 1;) +''' + +rules = parse_rules(source) +print(rules) +# +# alert http $HOME_NET any -> !$HOME_NET any ( \ +# msg: hi mum!; \ +# content: heymum; \ +# http_uri; \ +# sid: 1; \ +# ) + +rule = rules[0] + +print(rule.action) +# alert + +print(rule.protocol) +# http + +print(rule.src) +# $HOME_NET + +print(rule.src_port) +# any + +print(rule.direction) +# -> + +print(rule.dst) +# !$HOME_NET + +print(rule.dst_port) +# any + +for option in rule.options: + print(f'{option.keyword} = {option.settings}') +# +# msg = hi mum! +# content = heymum +# http_uri = None +# sid = 1 +``` + + +%prep +%autosetup -n parsuricata-0.3.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-parsuricata -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 0.3.3-1 +- Package Spec generated |
