import subprocess
from tabulate import tabulate

# Exécuter la commande docker ps et récupérer la sortie
command = "docker ps -a --format 'table  {{.Names}} \t {{.Status}} \t {{.Size}}'"
output = subprocess.check_output(command, shell=True).decode().strip()

# Convertir la sortie en liste de lignes
lines = output.split("\n")

# Récupérer les en-têtes de colonnes
headers = lines[0].split("\t")

# Récupérer les données des conteneurs
data = [line.split("\t") for line in lines[1:]]

# Générer le tableau avec le cadre
table = tabulate(data, headers=headers, tablefmt="pipe")

# Déterminer la largeur maximale pour le cadre
max_width = max(len(line) for line in table.split("\n"))

# Créer le cadre
frame = f"╭{'─' * (max_width - 2)}╮\n"
frame += f"│{'DOCKER STATUS':^{max_width-2}}│\n"
frame += f"├{'─' * (max_width - 2)}┤\n"
frame += table + "\n"
frame += f"╰{'─' * (max_width - 2)}╯"

# Afficher le cadre
print(frame)