#!/usr/bin/env python3 from sh import vagrant from parse import parse boxes = {} for line in vagrant.box("list"): box = parse('\x1b[0m{name:^} ({provider}, {version})\x1b[0m', line) if box['name'] in boxes: if box['provider'] in boxes[box['name']]: boxes[box['name']][box['provider']].append(box['version']) else: boxes[box['name']][box['provider']] = [ box['version'] ] else: boxes[box['name']] = {box['provider']: [ box['version'] ]} for box in boxes: for provider in boxes[box]: for version in boxes[box][provider][:-1]: print('Removing box {0} version {1}.'.format(box, version)) vagrant.box('remove', '--force', '--provider', provider, '--box-version', version, box) vagrant('global-status', '--prune')