# -*- coding: utf-8 -*- from __future__ import annotations from typing import TYPE_CHECKING from argparse import Namespace, ArgumentParser from .Cmd import Cmd from ..CmdTar import CmdTar from ....lib.FileContext import FileContext class CmdExtract(Cmd): # export def __init__(self, parent: CmdTar) -> None: super().__init__(parent, 'x', help="Extract a tar archive") def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument('dst', help='Destination root URI') async def _run(self, args: Namespace) -> None: async with self.ctx( dst_uri = args.dst, ) as ctx: await ctx.extract(ctx.dst.root)