From 77ed51898157d99112be7550471ec06e32344c9e Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 11 Oct 2020 21:35:37 +0200 Subject: Refactor plugin into seperate pages TODO: Readd 4chan login page, manganelo creators page, autocomplete --- src/Storage.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/Storage.cpp') diff --git a/src/Storage.cpp b/src/Storage.cpp index cd34b56..c9dfb17 100644 --- a/src/Storage.cpp +++ b/src/Storage.cpp @@ -1,9 +1,11 @@ #include "../include/Storage.hpp" #include "../include/env.hpp" +#include "../include/StringUtils.hpp" #include #include #include #include +#include #if OS_FAMILY == OS_FAMILY_POSIX #include @@ -223,4 +225,23 @@ namespace QuickMedia { return true; } + + bool is_program_executable_by_name(const char *name) { + // TODO: Implement for Windows. Windows also uses semicolon instead of colon as a separator + char *env = getenv("PATH"); + std::unordered_set paths; + string_split(env, ':', [&paths](const char *str, size_t size) { + paths.insert(std::string(str, size)); + return true; + }); + + for(const std::string &path_str : paths) { + Path path(path_str); + path.join(name); + if(get_file_type(path) == FileType::REGULAR) + return true; + } + + return false; + } } \ No newline at end of file -- cgit v1.2.3