Commit 6ba68962 authored by Snawoot's avatar Snawoot Committed by GitHub

Merge pull request #158 from Snawoot/ap_direct

ap: direct mode
parents 8490006b 0f12e20b
...@@ -44,6 +44,10 @@ def parse_args(): ...@@ -44,6 +44,10 @@ def parse_args():
parser.add_argument("-o", "--stdout", parser.add_argument("-o", "--stdout",
action="store_true", action="store_true",
help="output into stdout") help="output into stdout")
parser.add_argument("-D", "--direct",
action="store_true",
help="supply patched library directly instead of "
"installer file. Implies --stdout option.")
args = parser.parse_args() args = parser.parse_args()
return args return args
...@@ -113,13 +117,18 @@ def make_patch(archive, *, ...@@ -113,13 +117,18 @@ def make_patch(archive, *,
arch_tgt, arch_tgt,
search, search,
replacement, replacement,
sevenzip="7z"): sevenzip="7z",
with tempfile.TemporaryDirectory() as tmpdir: direct=False):
with ExtractedTarget(archive, if direct:
tmpdir, with open(archive, 'rb') as fo:
arch_tgt, f = fo.read()
sevenzip=sevenzip) as tgt: else:
f = expand(tgt, sevenzip=sevenzip) with tempfile.TemporaryDirectory() as tmpdir:
with ExtractedTarget(archive,
tmpdir,
arch_tgt,
sevenzip=sevenzip) as tgt:
f = expand(tgt, sevenzip=sevenzip)
offset = f.find(search) offset = f.find(search)
del f del f
if offset == -1: if offset == -1:
...@@ -160,9 +169,10 @@ def main(): ...@@ -160,9 +169,10 @@ def main():
arch_tgt=args.target, arch_tgt=args.target,
search=search, search=search,
replacement=replacement, replacement=replacement,
sevenzip=args.sevenzip) sevenzip=args.sevenzip,
direct=args.direct)
patch_content = format_patch(patch, args.target_name) patch_content = format_patch(patch, args.target_name)
if args.stdout: if args.stdout or args.direct:
with open(sys.stdout.fileno(), mode='wb', closefd=False) as out: with open(sys.stdout.fileno(), mode='wb', closefd=False) as out:
out.write(patch_content) out.write(patch_content)
else: else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment