diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2024-12-06 15:45:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-06 15:45:02 +0100 |
| commit | b1e5cc66bdb20b002c93479490c3a317552210b3 (patch) | |
| tree | 554891218c4bd6a50d8134790757ee2bdd914653 /src/helpers/MiscFunctions.cpp | |
| parent | 5ff02902ee830d29ededdb790ed5c8ef7aa111ed (diff) | |
core: Add support for hyprqtutils' update screen (#8651)
* Nix: add hyprland-qtutils to PATH
* flake.lock: update
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Diffstat (limited to 'src/helpers/MiscFunctions.cpp')
| -rw-r--r-- | src/helpers/MiscFunctions.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp index dc181d4f..2da90eb7 100644 --- a/src/helpers/MiscFunctions.cpp +++ b/src/helpers/MiscFunctions.cpp @@ -930,4 +930,34 @@ float stringToPercentage(const std::string& VALUE, const float REL) { return (std::stof(VALUE.substr(0, VALUE.length() - 1)) * REL) / 100.f; else return std::stof(VALUE); -}; +} + +bool executableExistsInPath(const std::string& exe) { + if (!getenv("PATH")) + return false; + + static CVarList paths(getenv("PATH"), 0, ':', true); + + for (auto& p : paths) { + std::string path = p + std::string{"/"} + exe; + std::error_code ec; + if (!std::filesystem::exists(path, ec) || ec) + continue; + + if (!std::filesystem::is_regular_file(path, ec) || ec) + continue; + + auto stat = std::filesystem::status(path, ec); + if (ec) + continue; + + auto perms = stat.permissions(); + + if (std::filesystem::perms::none == (perms & std::filesystem::perms::others_exec)) + return false; + + return true; + } + + return false; +} |
