#!/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")