# -*- coding: utf-8 -*- from __future__ import annotations from typing import TYPE_CHECKING from ...lib.util import copy from .Cmd import Cmd if TYPE_CHECKING: from ..CmdPosix import CmdPosix from argparse import Namespace, ArgumentParser class CmdCopy(Cmd): # export def __init__(self, parent: CmdPosix) -> None: super().__init__(parent, 'copy', help="Copy files") def add_arguments(self, parser: ArgumentParser) -> None: super().add_arguments(parser) parser.add_argument('src', help='Source file URI') parser.add_argument('dst', help='Destination file URI') parser.add_argument('-o', '--owner', default=None, help='Destination file owner') parser.add_argument('-g', '--group', default=None, help='Destination file group') parser.add_argument('-m', '--mode', default=None, help='Destination file mode') async def _run(self, args: Namespace) -> None: await copy(args.src, args.dst, owner=args.owner, group=args.group, mode=args.mode)