list command done

This commit is contained in:
2026-01-19 06:46:33 +11:00
parent 57e763a24f
commit dd204788e3
2 changed files with 37 additions and 0 deletions

34
src/list.py Normal file
View File

@@ -0,0 +1,34 @@
import os
import configparser
from rich import print
from rich.table import Table
def list_cmd(args):
ground_libs_folder = os.getenv("GROUND_LIBS") or "/usr/lib/ground/"
folders = os.listdir(ground_libs_folder)
table = Table("Name", "Version", "Description", title="Installed")
config_parser = configparser.ConfigParser()
for folder in folders:
full_path = os.path.join(ground_libs_folder, folder)
# skip anything that isnt a folder
if not os.path.isdir(full_path):
continue
# read the mineral.ini file to figure out the version and description
ini_path = os.path.join(full_path, "mineral.ini")
if not os.path.isfile(ini_path):
continue
config_parser.read(ini_path)
table.add_row(
f"[b]{folder}",
f"[blue]{config_parser.get('package', 'version')}",
config_parser.get("package", "description"),
)
print(table)

View File

@@ -4,6 +4,7 @@ import os, sys
from install import install
from publish import publish
from remove import remove
from list import list_cmd
def parse_arguments():
@@ -63,6 +64,8 @@ def parse_arguments():
publish(args)
elif args.command == "remove":
remove(args)
elif args.command == "list":
list_cmd(args)
def main():
parse_arguments()