]> localhost Git - gists.git/commitdiff
Add force and append options
authormisomosi <[email protected]>
Mon, 3 Aug 2026 17:56:57 +0000 (13:56 -0400)
committermisomosi <[email protected]>
Mon, 3 Aug 2026 17:56:57 +0000 (13:56 -0400)
MSR605X/mxser.py

index d037f4259dea11c20389b0fc5cc5de56deaabce1..d0cba956aec721cc3c51d4821771aad04b57835b 100644 (file)
@@ -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!')