/* * Copyright (c) 2010-2019 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #include #include #include #include namespace Swift { ApplicationPathProvider::ApplicationPathProvider(const std::string& applicationName) : applicationName(applicationName) { } ApplicationPathProvider::~ApplicationPathProvider() { } boost::filesystem::path ApplicationPathProvider::getProfileDir(const std::string& profile) const { boost::filesystem::path result(getHomeDir() / profile); try { boost::filesystem::create_directory(result); } catch (const boost::filesystem::filesystem_error& e) { SWIFT_LOG(error) << e.what(); } return result; } boost::filesystem::path ApplicationPathProvider::getResourcePath(const std::string& resource) const { std::vector resourcePaths = getResourceDirs(); for (const auto& resourcePath : resourcePaths) { boost::filesystem::path r(resourcePath / resource); if (boost::filesystem::exists(r)) { return r; } } return boost::filesystem::path(); } boost::filesystem::path ApplicationPathProvider::getExecutableDir() const { return Paths::getExecutablePath(); } }