import sys

import yaml

from lib.db import DB
from lib.db_revision import DBRevision


class Exporter:
    def __init__(self, package):
        self.package = package

    def run(self):
        db = DB()
        with db.cursor() as cur:
            cur.execute(
                "SELECT * from revisions where package=%s ORDER BY project,rev",
                (self.package,),
            )
            data = {"revisions": []}
            for row in cur.fetchall():
                data["revisions"].append(DBRevision(row).as_dict(db))

        yaml.dump(data, sys.stdout, default_flow_style=False)