Skip to content

Commit 1729669

Browse files
committed
add optional device argument
1 parent 4c7bca7 commit 1729669

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

bin/btrfs-blockgroup-report

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,19 @@ def parse_args():
4040
parser = argparse.ArgumentParser()
4141
parser.add_argument(
4242
'--usage',
43+
'-u',
4344
action="store_true",
4445
help="Print device blockgroup usage",
4546
)
4647
parser.add_argument(
4748
'mountpoint',
4849
help="Btrfs filesystem mountpoint",
4950
)
51+
parser.add_argument(
52+
'device',
53+
nargs='*',
54+
help="Only use specific devices (default include all)",
55+
)
5056
return parser.parse_args()
5157

5258

@@ -60,9 +66,17 @@ def safe_get_block_group(t):
6066

6167
def report_usage(args):
6268
with btrfs.FileSystem(args.mountpoint) as fs:
69+
fs_chunks = list(fs.chunks())
70+
6371
devices = fs.devices()
6472
devids = [d.devid for d in devices]
65-
fs_chunks = list(fs.chunks())
73+
if args.device:
74+
dev_infos = [fs.dev_info(id) for id in devids]
75+
selected_devids = []
76+
for dev in dev_infos:
77+
if any(d in (dev.path, dev.devid) for d in args.device):
78+
selected_devids.append(dev.devid)
79+
devids = selected_devids
6680

6781
print(args.mountpoint, '\t', fs.usage().virtual_used_str, '\t', len(fs_chunks), 'fs chunks')
6882
for devid in devids:

0 commit comments

Comments
 (0)