from argparse import ArgumentParser from collections.abc import AsyncIterator from contextlib import asynccontextmanager from ....CmdBase import CmdBase from ....lib.FileContext import FileContext from ....lib.ProcFilterGpg import ProcFilterGpg from ....lib.TarIo import TarIo from ..CmdTar import CmdTar as Parent class Cmd(CmdBase): # export def __init__(self, parent: Parent, name: str, help: str) -> None: super().__init__(parent, name, help) self.__tar_io: None = None @asynccontextmanager async def ctx(self, **kwargs) -> AsyncIterator[TarIo]: async with TarIo.create(src = self.app.args.archive_path, **kwargs) as ret: ret.src.add_proc_filter( FileContext.Direction.In, ProcFilterGpg(ec = self.app.exec_context) ) yield ret def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument( '-f', '--archive-path', required = True, help = 'Archive path' )