From 23a2e9c843fa60dfaaecfa1221bc2e00deb31ace Mon Sep 17 00:00:00 2001 From: Elliot Nunn Date: Tue, 2 Apr 2019 22:31:00 +0800 Subject: [PATCH] Rget can dump to a file --- bin/Rget | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/bin/Rget b/bin/Rget index e5bfe9c..adae75c 100755 --- a/bin/Rget +++ b/bin/Rget @@ -3,6 +3,8 @@ import argparse import macresources import sys +import tempfile +from os import path def fourcc(s): b = s.encode('mac_roman').ljust(4, b' ') @@ -43,6 +45,7 @@ parser = argparse.ArgumentParser(description=''' parser.add_argument('srcfile', help='resource file or Rez file') parser.add_argument('type', type=fourcc, help='four-byte type of resource (converted to Mac Roman pre-lookup)') parser.add_argument('id', type=resid, help='ID number of resource (-32768 to 32767)') +parser.add_argument('-f', dest='tofile', action='store_true', help='copy to a tempfile instead') args = parser.parse_args() @@ -56,10 +59,18 @@ else: for r in resources: if r.type == args.type and r.id == args.id: - try: - sys.stdout.buffer.write(r.data) - except BrokenPipeError: - pass + myres = r break else: raise ValueError(args.type, args.id) + +if args.tofile: + tmpname = '-%s-%s-%d' % (path.basename(args.srcfile), myres.type.decode('mac_roman'), myres.id) + with tempfile.NamedTemporaryFile(suffix=tmpname, delete=False, mode='wb') as f: + f.write(myres.data) + print(f.name) +else: + try: + sys.stdout.buffer.write(myres.data) + except BrokenPipeError: + pass