Allow abbreviated file sizes
This commit is contained in:
parent
f749606f57
commit
cbcb073dfd
17
chonker.py
17
chonker.py
|
@ -11,6 +11,19 @@ import sys
|
||||||
signal(SIGPIPE,SIG_DFL)
|
signal(SIGPIPE,SIG_DFL)
|
||||||
|
|
||||||
|
|
||||||
|
def filesize(s):
|
||||||
|
try:
|
||||||
|
if s[-1].upper() == "K":
|
||||||
|
return int(s[:-1]) * 1024
|
||||||
|
elif s[-1].upper() == "M":
|
||||||
|
return int(s[:-1]) * 1024**2
|
||||||
|
elif s[-1].upper() == "G":
|
||||||
|
return int(s[:-1]) * 1024**3
|
||||||
|
return int(s)
|
||||||
|
except:
|
||||||
|
raise ArgumentTypeError(f"'{s}' is not a valid file size")
|
||||||
|
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
"""
|
"""
|
||||||
Helper function for argument parsing.
|
Helper function for argument parsing.
|
||||||
|
@ -19,8 +32,8 @@ def parse_args():
|
||||||
"command invocation")
|
"command invocation")
|
||||||
parser.add_argument("--verbose", "-v", action="store_true", help="Verbose "
|
parser.add_argument("--verbose", "-v", action="store_true", help="Verbose "
|
||||||
"logging.")
|
"logging.")
|
||||||
parser.add_argument("--chunk", type=int, default=1024, help="Chunk size in bytes.")
|
parser.add_argument("--chunk", type=filesize, default=1024, help="Chunk size in bytes.")
|
||||||
parser.add_argument("--bufsize", type=int, default=1024, help="Buffer "
|
parser.add_argument("--bufsize", type=filesize, default=1024, help="Buffer "
|
||||||
"size for reading from stdin.")
|
"size for reading from stdin.")
|
||||||
parser.add_argument("--exec", required=True, help="Command to pipe chunks to.")
|
parser.add_argument("--exec", required=True, help="Command to pipe chunks to.")
|
||||||
# parser.add_argument("--inc", help="Pattern to find/replace with the "
|
# parser.add_argument("--inc", help="Pattern to find/replace with the "
|
||||||
|
|
Loading…
Reference in New Issue