commit bf541343ecc270e0e24ce7f7807a8f67da83dad3
parent a1fa69eaf52b4b1ca55577ad0e7c9f397ac7089d
Author: Richard Ipsum <richardipsum@fastmail.co.uk>
Date: Sun, 2 Apr 2017 13:21:43 +0100
sparsemap: Use argparse
Diffstat:
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/sparseutils/sparsemap.py b/sparseutils/sparsemap.py
@@ -21,6 +21,19 @@ import sys
import os
import stat
import errno
+import argparse
+
+DESCRIPTION = '''Print the structure of a sparse file to stdout.
+
+The file is interpreted as a sequence of data and holes, for example
+given a file with 8192 bytes of data followed by a 4096 byte hole followed
+by 8192 bytes of data the output of sparsemap would be:
+
+DATA 8192
+HOLE 4096
+DATA 8192
+
+'''
def sparsemap(fd):
@@ -58,11 +71,13 @@ def sparsemap(fd):
what = os.SEEK_DATA if what == os.SEEK_HOLE else os.SEEK_HOLE
def main():
- if len(sys.argv) != 2:
- print('usage: {} FILE'.format(sys.argv[0]), file=sys.stderr)
- sys.exit(1)
+ parser = argparse.ArgumentParser(
+ description=DESCRIPTION,
+ formatter_class=argparse.RawDescriptionHelpFormatter)
+ parser.add_argument('FILE')
- path = sys.argv[1]
+ args = vars(parser.parse_args())
+ path = args['FILE']
try:
mode = os.stat(path).st_mode