27 lines
1 KiB
Python
27 lines
1 KiB
Python
|
|
# -*- 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)
|