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>
This commit is contained in:
Jan Lindemann 2026-04-21 18:11:46 +02:00
commit 7357092576
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61
4 changed files with 77 additions and 0 deletions

View file

@ -0,0 +1,27 @@
# -*- 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')