diff options
author | lassulus <lassulus@lassul.us> | 2021-09-14 18:52:54 +0200 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2021-10-23 14:58:10 +0200 |
commit | 55b137ba525f075f4619de4676d3e66f782b1a12 (patch) | |
tree | 87760565f954e5371e48431372bebac75fe76bf4 /krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py | |
parent | 9ea664b63c348a5855299250ec45f622c1404c5d (diff) |
rip Reaktor
Diffstat (limited to 'krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py')
-rwxr-xr-x | krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py b/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py deleted file mode 100755 index 4925b25bb..000000000 --- a/krebs/5pkgs/simple/Reaktor/scripts/sed-plugin.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python3 - -# Usage: -# _from=krebs state_dir=. python sed-plugin.py 'dick butt' -# _from=krebs state_dir=. python sed-plugin.py 's/t/l/g' -# > dick bull -import shelve -from os import environ -from os.path import join -from sys import argv -from time import sleep -import re - -# try to open the shelve file until it succeeds -while True: - try: - d = shelve.open( - join(environ['state_dir'], 'sed-plugin.shelve'), - writeback=True - ) - break - except: # noqa: E722 - sleep(0.2) -usr = environ['_from'] - - -def is_regex(line): - myre = re.compile(r'^s/(?:\\/|[^/])+/(?:\\/|[^/])*/[ig]?$') - return myre.match(line) - - -line = argv[1] - -if is_regex(line): - last = d.get(usr, None) - if last: - from subprocess import Popen, PIPE - p = Popen(['sed', line], stdin=PIPE, stdout=PIPE, stderr=PIPE) - so, se = p.communicate(bytes("{}\n".format(last), "UTF-8")) - if p.returncode: - print("something went wrong when trying to process your regex: {}".format(line.strip())) - ret = so.decode() - if len(ret) > 512: - print('message to long, skipped') - elif len(ret.split('\n')) > 5: - print('to many lines, skipped') - else: - if last.strip() != ret.strip(): - print("\x02{}\x02 meant: {}".format(usr, ret.strip())) - if ret: - d[usr] = ret - - else: - print("no last message") -else: - d[usr] = line - -d.close() |