#!/usr/bin/env python3 # pylint: disable=invalid-name """Update local Vagrant base boxes.""" # pylint: disable=import-error from parse import parse from sh import vagrant boxes = {} dummy_providers = ["aws"] for line in vagrant.box("list"): box = parse("\x1b[0m{name:^} ({provider}, {version})\x1b[0m", line) if not box["provider"] in dummy_providers: if box["name"] in boxes: if not box["provider"] in boxes[box["name"]]: boxes[box["name"]].append(box["provider"]) else: boxes[box["name"]] = [box["provider"]] # pylint: disable=consider-using-dict-items for box in boxes: for provider in boxes[box]: print(f"Updating box {box} provider {provider}.") vagrant.box("update", "--provider", provider, "--box", box)