diff --git a/src/python/jw/pkg/cmds/posix/CmdCopy.py b/src/python/jw/pkg/cmds/posix/CmdCopy.py new file mode 100644 index 00000000..65b7e9c5 --- /dev/null +++ b/src/python/jw/pkg/cmds/posix/CmdCopy.py @@ -0,0 +1,27 @@ +# -*- 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)