1# 2# Copyright (C) 2018 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the 'License'); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an 'AS IS' BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17import logging 18import os 19import shutil 20 21from host_controller.command_processor import base_command_processor 22 23 24class CommandCopy(base_command_processor.BaseCommandProcessor): 25 """Command processor for copy command. 26 27 Attributes: 28 arg_parser: ConsoleArgumentParser object, argument parser. 29 console: cmd.Cmd console object. 30 command: string, command name which this processor will handle. 31 command_detail: string, detailed explanation for the command. 32 """ 33 34 command = "copy" 35 command_detail = "Copy a file." 36 37 # @Override 38 def Run(self, arg_line): 39 """Copy a file from source to destination path.""" 40 src, dst = arg_line.split() 41 if dst == "{vts_tf_home}": 42 dst = os.path.dirname(self.console.test_suite_info["vts"]) 43 elif "{" in dst: 44 logging.error("unknown dst %s", dst) 45 return 46 shutil.copy(src, dst)