diff options
Diffstat (limited to 'src/util.h')
-rw-r--r-- | src/util.h | 33 |
1 files changed, 30 insertions, 3 deletions
@@ -3,12 +3,39 @@ // See accompanying file LICENSE for details. #pragma once -#include "libctor.h" +#include "ctor.h" #include <string> #include <filesystem> +#include <cstdlib> + +std::string to_lower(std::string str); std::string readFile(const std::string& fileName); -std::vector<std::string> readDeps(const std::string& depFile); -Language languageFromExtension(const std::filesystem::path& file); +ctor::language languageFromExtension(const std::filesystem::path& file); std::string cleanUp(const std::string& path); + +template<typename T> +void append(T& a, const T& b) +{ + a.insert(a.end(), b.begin(), b.end()); +} + +std::string esc(const std::string& in); + +//! Get system paths (ie. env var PATH). +//! If path_env is provided, this search string will be used, other the PATH +//! env variable is used. +//! \returns a vector of the individual toknized paths. +std::vector<std::string> get_paths(const std::string& path_env = {}); + +std::string locate(const std::string& app, + const std::vector<std::string>& paths, + const std::string& arch = {}); + +//! Splits string into tokens adhering to quotations " and ' +std::vector<std::string> argsplit(const std::string& str); + +//! Calls the system getenv and sets the string if the env name it exists. +//! \returns true if the env name existed, false otherwise. +bool get_env(std::string_view name, std::string& value); |