#!/usr/bin/env python3

from printer import p
import subprocess
import sys


def get_closure(installables):
    closure = subprocess.run(
        ["nix", "path-info", "--recursive"] + installables,
        encoding="utf8",
        stdout=subprocess.PIPE,
    )

    return closure.stdout.replace("/nix/store/", "").split("\n")

installables = sys.argv[1:]

with p:
    with p.set(
        align="center",
        bold=True,
        invert=True,
        smooth=True,
        custom_size=True,
        width=4,
        height=4,
    ):
        p.textln(" Nix Store ")

    p.ln()

    with p.set(align="center", double_height=True, double_width=True):
        p.textln("Everyone's favorite")
        p.textln("package store")

    p.ln()

    p.textln("You were looking for:")
    for item in installables:
        p.textln(f"- {item}")
    p.ln()

    p.textln("Your closure today:")

    with p.set(
        align="left",
        font=1,
    ):
        for line in get_closure(installables):
            p.textln(line)