summaryrefslogtreecommitdiff
path: root/src/util.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/util.h b/src/util.h
index d164fbf..38d89f2 100644
--- a/src/util.h
+++ b/src/util.h
@@ -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);