Files
python-appimage/python_appimage/commands/cache/list.py
Valentin Niess 2f663acc32 Cache management
2025-05-21 23:04:04 +02:00

42 lines
911 B
Python

import glob
import os
from pathlib import Path
import subprocess
from ...utils.deps import CACHE_DIR
from ...utils.log import log
__all__ = ['execute']
def _unpack_args(args):
'''Unpack command line arguments
'''
return tuple()
def execute():
'''List cached image(s)
'''
cache = Path(CACHE_DIR)
images = sorted(os.listdir(cache / 'share/images'))
for image in images:
tags = ', '.join((
tag[:-5] for tag in \
sorted(os.listdir(cache / f'share/images/{image}/tags'))
))
if not tags:
continue
path = cache / f'share/images/{image}'
memory = _getsize(path)
log('LIST', f'{image} ({tags}) [{memory}]')
def _getsize(path: Path):
r = subprocess.run(f'du -sh {path}', capture_output=True, check=True,
shell=True)
return r.stdout.decode().split(None, 1)[0]