tizen beta release
[framework/web/wrt-plugins-common.git] / src / modules / tizen / Filesystem / CopyCommand.cpp
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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 /**
17  * @author          Zbigniew Kostrzewa (z.kostrzewa@samsung.com)
18  */
19
20 #include "CopyCommand.h"
21 #include <sstream>
22
23 namespace {
24 const char* COMMAND_NAME = "/bin/cp";
25 const char* COMMAND_SWITCH_RECURSIVE = "-r";
26 const char* COMMAND_SWITCH_FORCE = "-f";
27 }
28
29 namespace WrtDeviceApis {
30 namespace Filesystem {
31
32 using namespace Api;
33
34 CopyCommand::CopyCommand(const IPathPtr& src,
35                          const IPathPtr& dest) :
36     m_src(src),
37     m_dest(dest),
38     m_recursive(false),
39     m_force(false)
40 {
41 }
42
43 void CopyCommand::setRecursive(bool recursive)
44 {
45     m_recursive = recursive;
46 }
47
48 void CopyCommand::setForce(bool force)
49 {
50     m_force = force;
51 }
52
53 std::string CopyCommand::prepare()
54 {
55     std::ostringstream oss;
56     oss << COMMAND_NAME;
57
58     if (m_recursive) {
59         oss << " " << COMMAND_SWITCH_RECURSIVE;
60     }
61
62     if (m_force) {
63         oss << " " << COMMAND_SWITCH_FORCE;
64     }
65
66     oss << " \"" << m_src->getFullPath().c_str() << "\"";
67     oss << " \"" << m_dest->getFullPath().c_str() << "\"";
68
69     return oss.str();
70 }
71
72 }
73 }