52 lines
1,019 B
Python
52 lines
1,019 B
Python
|
#!/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)
|