From f2353d63c72e3dd4d50f22c2495472c1f3105b8f Mon Sep 17 00:00:00 2001 From: Elliot Nunn Date: Sun, 2 Jun 2019 09:57:33 +0800 Subject: [PATCH] Rip out patching mechanism Conceived in a dream, this feature turned out to be more of a bug. The whole idea of tbxi is to work with easily-editable text files and naked binaries. Patching is best accomplished with a separate script. --- tbxi/dispatcher.py | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/tbxi/dispatcher.py b/tbxi/dispatcher.py index c9bbda3..09e9ca6 100644 --- a/tbxi/dispatcher.py +++ b/tbxi/dispatcher.py @@ -1,8 +1,5 @@ import importlib -from subprocess import run, PIPE - -import fnmatch import os from os import path @@ -19,17 +16,6 @@ class WrongFormat(Exception): pass -def strip_patch_name_ext(name): - # We need to match patch filenames to other filenames using fnmatch, - # but first we need to remove '.patch.sh' or '.patch' from the title - - # If it isn't a patch, return None - - for i in range(2): - name, ext = path.splitext(name) - if ext.lower() == '.patch': return name - - def build_dir(p): for fmt in FORMATS: mod = importlib.import_module('..%s_build' % fmt, __name__) @@ -61,27 +47,6 @@ def build(p): with open(p, 'rb') as f: data = f.read() - # Search the directory of the file for executable patches - for sib in sorted(os.scandir(parent), key=lambda ent: ent.name): - # Does the filename match? - pattern = strip_patch_name_ext(sib.name) - if pattern and fnmatch.fnmatch(name, pattern): - # This is a bit unsafe, so prompt the user (to pipe in `yes`...) - if input('Apply %s to %s? [y/N] ' % (sib.name, name)).lower().startswith('y'): - # The script is told the original filename, but it should READ FROM STDIN! - cmd = [sib.path, name] - - # Run the script as a unixy filter - result = run(cmd, cwd=parent, input=data, stdout=PIPE) - - # Return 0 to apply stdout, 1 to nop, anything else to fail - if result.returncode == 0: - data = result.stdout - elif result.returncode == 1: - pass - else: - result.check_returncode() - return data