Skip to content

Commit bef08a1

Browse files
Merge pull request #51 from lglglglgy/main
🛰️ run.sh & json
2 parents 89ce0ce + 986efb4 commit bef08a1

File tree

7 files changed

+134
-76
lines changed

7 files changed

+134
-76
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ mv mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit mysql-connector
5555
rm mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit.tar.gz
5656
mkdir build
5757
./run.sh
58-
sudo rm -rf /*
5958
```
6059
## API Documentation
6160
See [API.md](API.md) for details on APIs for authentication, user management, documents, etc.

file_controller.cc

Lines changed: 88 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@
77
#include <iostream>
88
#include <stdexcept>
99
#include <string>
10-
std::string return_status(std::string result, std::string command)
10+
std::string return_status(std::string result, std::string command,Json::Value &res_json)
1111
{
12-
if (result != "")
13-
result = "success";
12+
if (result != ""){
13+
result = command + " success";
14+
res_json["code"] = 200;
15+
}
1416
else
15-
result = " error in :" + command;
17+
{
18+
result = " Error in :" + command;
19+
res_json["code"] = 400;
20+
}
21+
1622
return result;
1723
}
1824
void add_lock(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
@@ -58,73 +64,90 @@ std::string shell_commands(const char *cmd)
5864

5965
void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
6066
{
61-
62-
enum Command
63-
{
64-
tree,
65-
cp,
66-
mv,
67-
rm,
68-
mkdir,
69-
touch,
70-
cat
71-
} command;
72-
char *pathvar;
73-
pathvar = getenv("PWD");
74-
75-
command = static_cast<Command>(stoi(req->getJsonObject()->get("command", "").asString()));
76-
std::string params1 = req->getJsonObject()->get("params", "")[0].asString();
77-
std::string params2 = req->getJsonObject()->get("params", "")[1].asString();
67+
auto res = HttpResponse::newHttpResponse();
7868
std::string result;
79-
switch (command)
80-
{
81-
case tree:
82-
result = shell_commands(("cd " + std::string(pathvar) + "/.. " + "&&" + "tree -J root").c_str());
83-
break;
84-
case cp:
85-
result = shell_commands(("cp -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
86-
result = return_status(result, "cp");
69+
Json::Value res_json;
70+
Json::FastWriter writer;
71+
res->addHeader("Access-Control-Allow-Origin", "*");
72+
if (jwtVerify(req)){
73+
enum Command
74+
{
75+
tree,
76+
cp,
77+
mv,
78+
rm,
79+
mkdir,
80+
touch,
81+
cat
82+
} command;
83+
char *pathvar;
84+
pathvar = getenv("PWD");
8785

88-
break;
89-
case mv:
90-
result = shell_commands(("mv -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
91-
result = return_status(result, "mv");
92-
break;
93-
case rm:
94-
if (params1.find("..") != std::string::npos)
86+
command = static_cast<Command>(stoi(req->getJsonObject()->get("command", "").asString()));
87+
std::string params1 = req->getJsonObject()->get("params", "")[0].asString();
88+
std::string params2 = req->getJsonObject()->get("params", "")[1].asString();
89+
switch (command)
9590
{
96-
result = "error:result in wrong directory";
91+
case tree:
92+
result = shell_commands(("cd " + std::string(pathvar) + "/.. " + "&&" + "tree -J root").c_str());
9793
break;
98-
}
99-
result = shell_commands(("rm -rf -v " + std::string(pathvar) + "/../root/" + params1).c_str());
100-
result = return_status(result, "rm");
101-
break;
102-
case mkdir:
103-
result = shell_commands(("mkdir -v " + std::string(pathvar) + "/../root/" + params1).c_str());
104-
result = return_status(result, "mkdir");
105-
break;
106-
case touch:
107-
if ("" == shell_commands(("ls -l " + std::string(pathvar) + "/../root/" + params1 + " grep ^- ").c_str()))
108-
{
109-
result = shell_commands(("touch " + std::string(pathvar) + "/../root/" + params1).c_str());
110-
result = "success";
111-
}
94+
case cp:
95+
result = shell_commands(("cp -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
96+
result = return_status(result, "cp",res_json);
11297

113-
else
114-
{
115-
result = "error:file already exists";
98+
break;
99+
case mv:
100+
result = shell_commands(("mv -v " + std::string(pathvar) + "/../root/" + params1 + " " + std::string(pathvar) + "/../root/" + params2).c_str());
101+
result = return_status(result, "mv",res_json);
102+
break;
103+
case rm:
104+
if (params1.find("..") != std::string::npos)
105+
{
106+
result = "error:result in wrong directory";
107+
res_json["code"] = 400;
108+
break;
109+
}
110+
result = shell_commands(("rm -rf -v " + std::string(pathvar) + "/../root/" + params1).c_str());
111+
result = return_status(result, "rm",res_json);
112+
break;
113+
case mkdir:
114+
result = shell_commands(("mkdir -v " + std::string(pathvar) + "/../root/" + params1).c_str());
115+
result = return_status(result, "mkdir",res_json);
116+
break;
117+
case touch:
118+
if ("" == shell_commands(("ls -l " + std::string(pathvar) + "/../root/" + params1 + " grep ^- ").c_str()))
119+
{
120+
result = shell_commands(("touch " + std::string(pathvar) + "/../root/" + params1).c_str());
121+
result = "success";
122+
res_json["code"] = 200;
123+
}
124+
125+
else
126+
{
127+
result = "error:file already exists";
128+
res_json["code"] = 400;
129+
}
130+
break;
131+
case cat:
132+
result = shell_commands(("cat " + std::string(pathvar) + "/../root/" + params1).c_str());
133+
res_json["code"] = 200;
134+
break;
135+
default:
136+
result = "error:command not found";
137+
res_json["code"] = 400;
138+
break;
116139
}
117-
break;
118-
case cat:
119-
result = shell_commands(("cat " + std::string(pathvar) + "/../root/" + params1).c_str());
120-
break;
121-
default:
122-
result = "error:command not found";
123-
break;
124140
}
125-
auto res = HttpResponse::newHttpResponse();
141+
else
142+
{
143+
result = "No Authorization";
144+
res_json["code"] = 401;
145+
}
146+
res_json["message"] = result;
147+
126148
res->addHeader("Access-Control-Allow-Origin", "*");
127-
res->setBody(result);
149+
auto output = writer.write(res_json);
150+
res->setBody(output);
128151
callback(res);
129152
}
130153
// void genTree(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
@@ -152,6 +175,7 @@ void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpRespon
152175
void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
153176
{
154177
auto res = HttpResponse::newHttpResponse();
178+
res->addHeader("Access-Control-Allow-Origin", "*");
155179
if (jwtVerify(req))
156180
{
157181
auto body = req->getBody();
@@ -172,7 +196,7 @@ void saveFile(const HttpRequestPtr &req, std::function<void(const HttpResponsePt
172196

173197
sql_unlocked(filename);
174198

175-
res->addHeader("Access-Control-Allow-Origin", "*");
199+
176200
res->setBody("success");
177201
callback(res);
178202
}

file_controller.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ void getPicture(const HttpRequestPtr &req, std::function<void(const HttpResponse
1313
void commandsCtrl(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
1414

1515
void add_lock(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback);
16-
void return_status(std::string result);
17-
16+
//void return_status(std::string result);
17+
std::string return_status(std::string result, std::string command,Json::Value &res_json);
1818
// std::string
1919
#endif
14.9 MB
Binary file not shown.

mysql.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ bool sql_check(std::string user, std::string passwd)
424424
std::cerr << "SQL Exception: " << e.what() << std::endl;
425425
}
426426

427-
std::cout << result << std::endl;
427+
// std::cout << result << std::endl;
428428
return result;
429429
}
430430
Json::Value sql_find_my_msg(std::string me, std::string connect_type)
@@ -481,7 +481,7 @@ Json::Value sql_find_my_msg(std::string me, std::string connect_type)
481481
updateStmt->setInt(1, id);
482482
updateStmt->executeUpdate();
483483
delete updateStmt;
484-
// std::cout<<"change"<<std::endl;
484+
// std::cout <<"change"<<std::endl;
485485
}
486486

487487
Json::Value item;
File renamed without changes.

run.sh

Lines changed: 42 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#!/bin/bash
2-
echo "-- ███████╗██╗░░░░░██╗░░░██╗██████╗░███████╗███╗░░██╗--"
2+
echo "-- ███████╗██╗░░░░░██╗░░░██╗██████╗░███████╗███╗░░██╗--"
33
echo "-- ██╔════╝██║░░░░░╚██╗░██╔╝██╔══██╗██╔════╝████╗░██║--"
44
echo "-- █████╗░░██║░░░░░░╚████╔╝░██████╔╝█████╗░░██╔██╗██║--"
55
echo "-- ██╔══╝░░██║░░░░░░░╚██╔╝░░██╔═══╝░██╔══╝░░██║╚████║--"
@@ -9,11 +9,11 @@ echo "-- ╚═╝░░░░░╚══════╝░░░╚═╝░
99

1010
spin() {
1111
local -a spinner=( "" "" "" "" "" "" "" "" "" "" )
12-
12+
local str=$1
1313

1414
while true; do
1515
for i in "${spinner[@]}"; do
16-
echo -ne "\r\033[32m$i Running...\033[0m "
16+
echo -ne "\r\033[32m$i $str \033[0m "
1717
sleep 0.1
1818
done
1919
done
@@ -22,9 +22,39 @@ spin() {
2222

2323
if [ "$(uname)" == "Darwin" ]; then
2424
echo "-- Macos detected"
25+
#检测是否存在mysql-connector文件夹
26+
if [ ! -d "mysql-connector" ]; then
27+
echo "-- mysql-connector folder does not exist, downloading..."
28+
wget https://cdn.mysql.com//Downloads/Connector-C++/mysql-connector-c++-8.1.0-macos13-arm64.tar.gz
29+
#下载是否成功
30+
if [ $? -ne 0 ]; then
31+
echo "-- Download failed, please check your network"
32+
exit 1
33+
fi
34+
tar -xvf mysql-connector-c++-8.1.0-macos13-arm64.tar.gz
35+
mv mysql-connector-c++-8.1.0-macos13-arm64 mysql-connector
36+
rm mysql-connector-c++-8.1.0-macos13-arm64.tar.gz
37+
else
38+
echo "-- mysql-connector folder already exists "
39+
fi
2540
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$(pwd)/mysql-connector/lib64
2641
else
2742
echo "-- Linux detected"
43+
#检测是否存在mysql-connector文件夹
44+
if [ ! -d "mysql-connector" ]; then
45+
echo "-- mysql-connector folder does not exist, downloading..."
46+
wget https://cdn.mysql.com//Downloads/Connector-C++/mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit.tar.gz
47+
#下载是否成功
48+
if [ $? -ne 0 ]; then
49+
echo "-- Download failed, please check your network"
50+
exit 1
51+
fi
52+
tar -xvf mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit.tar.gz
53+
mv mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit mysql-connector
54+
rm mysql-connector-c++-8.1.0-linux-glibc2.28-x86-64bit.tar.gz
55+
else
56+
echo "-- mysql-connector folder already exists "
57+
fi
2858
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/mysql-connector/lib64
2959
fi
3060
#检测是否存在build文件夹
@@ -33,15 +63,20 @@ fi
3363
else
3464
echo "-- build folder already exists "
3565
fi
66+
# 获取机器的核心数
67+
CORES=$(nproc)
68+
echo "The machine has $CORES cores."
69+
CORES=$((CORES-1))
3670
cd build
3771
cmake ..
3872
make clean
39-
make -j16
73+
echo "make -j$CORES"
74+
make -j$CORES
4075
echo "-- Working in the background..."
41-
spin &
76+
spin "Running ..." &
4277
SPIN_PID=$!
43-
./flypen
78+
./flypen
4479
kill -9 "$SPIN_PID" &> /dev/null
4580
echo -ne "\r\033[K"
46-
echo -e "\e[1;31m-- WRONG\e[0m"
81+
echo -e "\e[1;31m-- WRONG\e[0m"
4782
cd ..

0 commit comments

Comments
 (0)