jw-pkg/src/python/jw/pkg/cmds/posix/tar/Cmd.py
Jan Lindemann 7357092576
cmds.posix.Tar: Add command

Add a "jw-pkg posix tar" command. Currently the only thing that can be done with it is extracting.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-04-23 20:18:42 +02:00

27 lines
956 B
Python

# -*- coding: utf-8 -*-
from argparse import Namespace, ArgumentParser
from contextlib import asynccontextmanager
from ..Cmd import Cmd as Base
from ..CmdTar import CmdTar as Parent
from ....lib.TarIo import TarIo
from ....lib.ProcFilterGpg import ProcFilterGpg
from ....lib.FileContext import FileContext
class Cmd(Base): # 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) -> TarIo:
async with TarIo.create(src_uri=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')