// -*- c++ -*- // Distributed under the BSD 2-Clause License. // See accompanying file LICENSE for details. #pragma once #include "ctor.h" #include <string> #include <filesystem> #include <cstdlib> std::string to_lower(const std::string& str); std::string readFile(const std::string& fileName); 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); std::vector<std::string> get_paths(const std::string& path_env = std::getenv("PATH")); 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);