-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebread.cpp
More file actions
67 lines (60 loc) · 2.04 KB
/
Copy pathwebread.cpp
File metadata and controls
67 lines (60 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <string>
#include <regex>
#include <web/web.hpp>
#include <strutils.hpp>
#include <myerror.hpp>
using std::cout;
using std::endl;
using std::string;
using std::vector;
string myerror = "";
string mywarning = "";
struct Args {
Args() : server(), directory(), type(), dsnum(), script(), parameters(),
level(), product(), start_date(), end_date(), files() { }
string server, directory, type, dsnum, script, parameters, level, product;
string start_date, end_date;
vector<string> files;
} args;
void parseQuery() {
QueryString query_string(QueryString::POST);
args.server = query_string.value("server");
args.directory = query_string.value("directory");
if (!args.directory.empty() && args.directory[0] != '/') {
args.directory = "/" + args.directory;
}
args.type = query_string.value("stype_top");
if (args.type.empty()) {
args.type = "wget";
}
// patch until QueryString uses vector instead of list
auto list = query_string.values_that_begin_with("sfile");
for (const auto& e : list) {
args.files.emplace_back(e);
}
// args.files = query_string.values_that_begin_with("sfile");
args.dsnum = query_string.value("dsnum");
args.script = query_string.value("script_top");
if (args.script.empty()) {
args.script = "csh";
}
args.parameters = query_string.value("parameters");
args.level = query_string.value("level");
args.product = query_string.value("product");
args.start_date = query_string.value("sd");
args.end_date = query_string.value("ed");
}
int main(int argc, char **argv) {
parseQuery();
cout << "Content-type: text/plain" << endl << endl;
if (args.type == "wget") {
create_wget_script(args.files, args.server, args.directory, args.script);
} else if (args.type == "curl") {
create_curl_script(args.files, args.server, args.directory, args.dsnum,
args.script, args.parameters, args.level, args.product, args.start_date,
args.end_date);
} else if (args.type == "python") {
create_python_script(args.files, args.server, args.directory, args.script);
}
}