From: misomosi Date: Mon, 3 Aug 2026 17:56:57 +0000 (-0400) Subject: Add force and append options X-Git-Url: http://git.misomosispi.com/?a=commitdiff_plain;h=d6e79034ed220cf37ec25cd23aa2eb51fe65ce92;p=gists.git Add force and append options --- diff --git a/MSR605X/mxser.py b/MSR605X/mxser.py index d037f42..d0cba95 100644 --- a/MSR605X/mxser.py +++ b/MSR605X/mxser.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import argparse import datetime +import os import getpass import sys @@ -10,6 +11,8 @@ def main(argv): parser.add_argument('-e', '--expires', default='9912', help='Date of expiration on card (Format: YYMM)') parser.add_argument('-s', '--service', default='121', help='Service code of card (TODO: help for service code)') parser.add_argument('-p', '--pan', default='', help='Primary account number of card (CAUTION: COMMAND LINE SAVED IN SHELL HISTORIES)') + parser.add_argument('-f', '--force', action=argparse.BooleanOptionalAction, default=False, help='Force file write even if exists') + parser.add_argument('-a', '--append', action=argparse.BooleanOptionalAction, default=False, help='Append to the file instead of overwriting it') parser.add_argument('FILE') args = parser.parse_args(args=argv[1:]) @@ -56,6 +59,11 @@ def main(argv): print(f'Primary account number is not numeric or is longer than 19 characters!') exitcode |= 16 + FILE = args.FILE + if not args.force and not args.append and os.path.exists(args.FILE): + print(f'File ({FILE}) exists (use -a to append or -f to overwrite)') + exitcode |= 32 + if exitcode != 0: return exitcode @@ -64,8 +72,7 @@ def main(argv): T1 = f'%B{PAN}^{NAME}^{EXP}{SVC}^^^?' T2 = f';{PAN}={EXP}{SVC}===?' T3 = '+?' - FILE = args.FILE - with open(FILE, 'w') as fp: + with open(FILE, 'a' if args.append else 'w') as fp: datestr = TODAY.strftime('%Y.%m.%d %H:%M:%S') fp.write('\n'.join([datestr, T1, T2, T3, '', ''])) print(f'Magstripe track file "{FILE}" written!')