Add -a/--all option to show all versions
This commit is contained in:
24
src/main.cpp
24
src/main.cpp
@@ -16,13 +16,15 @@ void print_help() {
|
||||
|
||||
int main(int argc, char* argv[]) {
|
||||
try {
|
||||
bool all = false;
|
||||
int opt_char, opt_val;
|
||||
struct option long_options[] = {
|
||||
{"help", no_argument, nullptr, 'h'},
|
||||
{"all", no_argument, nullptr, 'a'},
|
||||
{"version", no_argument, &opt_val, 1},
|
||||
{nullptr, 0, nullptr, 0}
|
||||
};
|
||||
while ((opt_char = getopt_long(argc, argv, "h", long_options, nullptr)) != -1) {
|
||||
while ((opt_char = getopt_long(argc, argv, "ah", long_options, nullptr)) != -1) {
|
||||
std::string arg {optarg ? optarg : ""};
|
||||
switch (opt_char) {
|
||||
case 0: {
|
||||
@@ -34,6 +36,9 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'a':
|
||||
all = true;
|
||||
break;
|
||||
case 'h':
|
||||
print_help();
|
||||
return EXIT_SUCCESS;
|
||||
@@ -52,15 +57,14 @@ int main(int argc, char* argv[]) {
|
||||
}
|
||||
}
|
||||
sc::requester req;
|
||||
std::istringstream text {req.get("https://gitlab.com/gitlab-org/gitlab-foss/-/raw/master/CHANGELOG.md")};
|
||||
std::string line;
|
||||
for (size_t i = 0; i < 5; ++i) {
|
||||
std::getline(text, line);
|
||||
}
|
||||
std::regex pat {R"(\d+\.\d+\.\d+)"};
|
||||
std::smatch match;
|
||||
if (std::regex_search(line, match, pat)) {
|
||||
std::cout << match[0] << '\n';
|
||||
std::string text {req.get("https://gitlab.com/gitlab-org/gitlab-foss/-/raw/master/CHANGELOG.md")};
|
||||
std::regex pat {R"(##\s+(\d+\.\d+\.\d+)\s+\((\d+-\d+-\d+))"};
|
||||
std::sregex_iterator beg {text.begin(), text.end(), pat};
|
||||
std::sregex_iterator end {};
|
||||
for (std::sregex_iterator i = beg; i != end; ++i) {
|
||||
std::smatch match {*i};
|
||||
std::cout << match[1] << " [" << match[2] << "]\n";
|
||||
if (!all) break;
|
||||
}
|
||||
} catch (const std::exception& ex) {
|
||||
std::cerr << "gitlabvers: " << ex.what() << '\n';
|
||||
|
Reference in New Issue
Block a user