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