File: helpers.cpp

package info (click to toggle)
dnf5 5.4.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,960 kB
  • sloc: cpp: 94,312; python: 3,370; xml: 1,073; ruby: 600; sql: 250; ansic: 232; sh: 104; perl: 62; makefile: 30
file content (18 lines) | stat: -rw-r--r-- 678 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "helpers.hpp"

#include <regex>

namespace dnf5 {

std::vector<std::string> repo_fallbacks(const std::string & name_version) {
    std::smatch match;
    if (std::regex_match(name_version, match, std::regex("^(rhel|centos|almalinux)-([0-9]+)$")))
        // try rhel-9-x86_64, then epel-9-x86_64
        return {name_version, "epel-" + match.str(2)};
    if (std::regex_match(name_version, match, std::regex("^(rhel|centos|almalinux)-([0-9]+).([0-9]+)$")))
        // try rhel-9.1-x86_64, then rhel-9-x86_64, then epel-9-x86_64
        return {name_version, match.str(1) + "-" + match.str(2), "epel-" + match.str(2)};
    return {name_version};
}

}  // namespace dnf5