7
7
#include < iostream>
8
8
#include < stdexcept>
9
9
#include < string>
10
- void add_lock (const HttpRequestPtr &req, std::function<void (const HttpResponsePtr &)> &&callback){
10
+ std:: string return_status (std::string result,std::string command )
11
+ {
12
+ if (result != " " )
13
+ result = " success" ;
14
+ else
15
+ result = " error in :" +command;
16
+ return result;
17
+ }
18
+ void add_lock (const HttpRequestPtr &req, std::function<void (const HttpResponsePtr &)> &&callback)
19
+ {
11
20
std::string filename = req->getParameter (" filename" );
12
- if (lockcheck (filename)){
21
+ if (lockcheck (filename))
22
+ {
13
23
auto res = HttpResponse::newHttpResponse ();
14
24
res->addHeader (" Access-Control-Allow-Origin" , " *" );
15
25
res->setBody (" This file has been occupied" );
16
26
callback (res);
17
27
}
18
- else {
28
+ else
29
+ {
19
30
auto res = HttpResponse::newHttpResponse ();
20
31
res->addHeader (" Access-Control-Allow-Origin" , " *" );
21
32
res->setBody (" This file is yours" );
@@ -49,21 +60,22 @@ void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpRespon
49
60
{
50
61
51
62
std::cout << " commandsCtrl" << std::endl;
52
- enum Command {
63
+ enum Command
64
+ {
53
65
tree,
54
66
cp,
55
67
mv,
56
68
rm,
57
69
mkdir,
58
70
touch,
59
71
cat
60
- } command;
72
+ } command;
61
73
char *pathvar;
62
74
pathvar = getenv (" PWD" );
63
-
64
- command = static_cast <Command>(stoi (req->getJsonObject ()->get (" command" ," " ).asString ()));
65
- std::string params1 = req->getJsonObject ()->get (" params" ," " )[0 ].asString ();
66
- std::string params2 = req->getJsonObject ()->get (" params" ," " )[1 ].asString ();
75
+
76
+ command = static_cast <Command>(stoi (req->getJsonObject ()->get (" command" , " " ).asString ()));
77
+ std::string params1 = req->getJsonObject ()->get (" params" , " " )[0 ].asString ();
78
+ std::string params2 = req->getJsonObject ()->get (" params" , " " )[1 ].asString ();
67
79
std::string result;
68
80
switch (command)
69
81
{
@@ -72,51 +84,41 @@ void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpRespon
72
84
break ;
73
85
case cp:
74
86
result = shell_commands ((" cp -v " + std::string (pathvar) + " /../root/" + params1 + " " + std::string (pathvar) + " /../root/" + params2).c_str ());
75
- if (result!=" " )
76
- result = " success" ;
77
- else
78
- result = " error: in cp" ;
87
+ result = return_status (result," cp" );
88
+
79
89
break ;
80
90
case mv:
81
91
result = shell_commands ((" mv -v " + std::string (pathvar) + " /../root/" + params1 + " " + std::string (pathvar) + " /../root/" + params2).c_str ());
82
- if (result!=" " )
83
- result = " success" ;
84
- else
85
- result = " error: in mv" ;
92
+ result = return_status (result," mv" );
86
93
break ;
87
94
case rm:
88
- if (params1.find (" .." ) != std::string::npos){
95
+ if (params1.find (" .." ) != std::string::npos)
96
+ {
89
97
result = " error:result in wrong directory" ;
90
98
break ;
91
99
}
92
100
result = shell_commands ((" rm -rf -v " + std::string (pathvar) + " /../root/" + params1).c_str ());
93
- if (result!=" " )
94
- result = " success" ;
95
- else
96
- result = " error: in rm" ;
101
+ result = return_status (result," rm" );
97
102
break ;
98
103
case mkdir:
99
104
result = shell_commands ((" mkdir -v " + std::string (pathvar) + " /../root/" + params1).c_str ());
100
- if (result!=" " )
101
- result = " success" ;
102
- else
103
- result = " error: in mkdir" ;
105
+ result = return_status (result," mkdir" );
104
106
break ;
105
107
case touch:
106
- if (" " == shell_commands ((" ls -l " + std::string (pathvar) + " /../root/" + params1 + " grep ^- " ).c_str ()))
108
+ if (" " == shell_commands ((" ls -l " + std::string (pathvar) + " /../root/" + params1 + " grep ^- " ).c_str ()))
107
109
{
108
110
result = shell_commands ((" touch " + std::string (pathvar) + " /../root/" + params1).c_str ());
109
- result = " success" ;
111
+ result = " success" ;
110
112
}
111
-
113
+
112
114
else
113
115
{
114
116
result = " error:file already exists" ;
115
117
}
116
118
break ;
117
119
case cat:
118
120
result = shell_commands ((" cat " + std::string (pathvar) + " /../root/" + params1).c_str ());
119
- break ;
121
+ break ;
120
122
default :
121
123
result = " error:command not found" ;
122
124
break ;
@@ -125,7 +127,6 @@ void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpRespon
125
127
res->addHeader (" Access-Control-Allow-Origin" , " *" );
126
128
res->setBody (result);
127
129
callback (res);
128
-
129
130
}
130
131
// void genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
131
132
// {
@@ -149,7 +150,6 @@ void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpRespon
149
150
// callback(res);
150
151
// }
151
152
152
-
153
153
void saveFile (const HttpRequestPtr &req, std::function<void (const HttpResponsePtr &)> &&callback)
154
154
{
155
155
auto res = HttpResponse::newHttpResponse ();
@@ -170,9 +170,9 @@ void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePt
170
170
std::string filename = req_json[" filename" ].asString ();
171
171
std::string content = req_json[" content" ].asString ();
172
172
std::string result = shell_commands ((" echo '" + content + " '>" + std::string (pathvar) + " /../root/" + filename).c_str ());
173
-
173
+
174
174
sql_unlocked (filename);
175
-
175
+
176
176
res->addHeader (" Access-Control-Allow-Origin" , " *" );
177
177
res->setBody (" success" );
178
178
callback (res);
@@ -232,4 +232,3 @@ void getPicture(const HttpRequestPtr &req, std::function<void(const HttpResponse
232
232
resp->setBody (" No Authorization" );
233
233
}
234
234
}
235
-
0 commit comments