[file_utils] dirpacker: --machine-readable
The option --machine-readable allows to print the list of bins in a machine-readable format.
This commit is contained in:
parent
235a22aba1
commit
718d4c5c95
|
@ -16,6 +16,10 @@ called a bin.
|
||||||
|
|
||||||
By default, dirpacker displays a list of bins and the files they
|
By default, dirpacker displays a list of bins and the files they
|
||||||
would contain, along with the size of each file and some statistics.
|
would contain, along with the size of each file and some statistics.
|
||||||
|
With the option --machine-readable, this list will be printed in a
|
||||||
|
machine-readable format: each line contains a bin's name, then a
|
||||||
|
tabulation, then a file that belongs to this bin.
|
||||||
|
|
||||||
With the option --move, a directory will be created for each volume and
|
With the option --move, a directory will be created for each volume and
|
||||||
the files will be moved to the corresponding volume.
|
the files will be moved to the corresponding volume.
|
||||||
|
|
||||||
|
|
|
@ -53,12 +53,18 @@ class Bin:
|
||||||
def print(self):
|
def print(self):
|
||||||
"""Displays the contents of the bin.
|
"""Displays the contents of the bin.
|
||||||
"""
|
"""
|
||||||
print("\n### {} ###\nList of files:".format(self.name()))
|
if not options.machine_readable:
|
||||||
|
print("\n### {} ###\nList of files:".format(self.name()))
|
||||||
for filename, size in sorted(self.files.items()):
|
for filename, size in sorted(self.files.items()):
|
||||||
print("{:12.2f} MiB\t{}".format(size, filename))
|
if options.machine_readable:
|
||||||
sizefree = options.maxbinsize - self.size
|
print(self.name(), end="")
|
||||||
print("This bin's size: {:.2f} MiB".format(self.size))
|
else:
|
||||||
print("Unused: {:.2f} MiB".format(sizefree))
|
print("{:12.2f} MiB".format(size))
|
||||||
|
print("\t{}".format(filename))
|
||||||
|
if not options.machine_readable:
|
||||||
|
sizefree = options.maxbinsize - self.size
|
||||||
|
print("This bin's size: {:.2f} MiB".format(self.size))
|
||||||
|
print("Unused: {:.2f} MiB".format(sizefree))
|
||||||
|
|
||||||
def name(self):
|
def name(self):
|
||||||
"""Returns the bin's name'
|
"""Returns the bin's name'
|
||||||
|
@ -136,6 +142,9 @@ arg_parser.add_argument("--prefix", action="store", default="bin_",
|
||||||
help="prefix of a bin's name (default: \"bin_\")")
|
help="prefix of a bin's name (default: \"bin_\")")
|
||||||
arg_parser.add_argument("--move", action="store_true",
|
arg_parser.add_argument("--move", action="store_true",
|
||||||
help="move input to per-volume directories")
|
help="move input to per-volume directories")
|
||||||
|
arg_parser.add_argument("-m", "--machine-readable", action="store_true",
|
||||||
|
help="print the list of volumes in a machine-readable"
|
||||||
|
" format; implies --quiet")
|
||||||
arg_parser.add_argument("-v", "--verbose", action="store_true", default=True,
|
arg_parser.add_argument("-v", "--verbose", action="store_true", default=True,
|
||||||
help="be verbose (this is the default)")
|
help="be verbose (this is the default)")
|
||||||
arg_parser.add_argument("-q", "--quiet", action="store_false", dest="verbose",
|
arg_parser.add_argument("-q", "--quiet", action="store_false", dest="verbose",
|
||||||
|
@ -144,6 +153,9 @@ arg_parser.add_argument("filenames", metavar="file", nargs="+",
|
||||||
help="files or directories to pack")
|
help="files or directories to pack")
|
||||||
options = arg_parser.parse_args()
|
options = arg_parser.parse_args()
|
||||||
|
|
||||||
|
if options.machine_readable:
|
||||||
|
options.verbose = False
|
||||||
|
|
||||||
|
|
||||||
### Preliminary statistics ###
|
### Preliminary statistics ###
|
||||||
|
|
||||||
|
@ -198,7 +210,7 @@ Actual unused space over the {} bins created: {:.2f} MiB"""
|
||||||
|
|
||||||
|
|
||||||
# Print the contents of the bins
|
# Print the contents of the bins
|
||||||
if options.verbose:
|
if options.verbose or options.machine_readable:
|
||||||
for b in bins:
|
for b in bins:
|
||||||
b.print()
|
b.print()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue