From 8755bbe309d2f00c7bc73a6a6304ed8860a9a94d Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Tue, 20 Jan 2015 17:46:41 +0100 Subject: Implemented automatic generation of default search paths --- src/plugins/filesystem/SpecialPaths.cpp | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/plugins/filesystem/SpecialPaths.cpp (limited to 'src/plugins/filesystem/SpecialPaths.cpp') diff --git a/src/plugins/filesystem/SpecialPaths.cpp b/src/plugins/filesystem/SpecialPaths.cpp new file mode 100644 index 0000000..97bdb9c --- /dev/null +++ b/src/plugins/filesystem/SpecialPaths.cpp @@ -0,0 +1,67 @@ +/* + Ousía + Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include +#include + +#include + +#include "SpecialPaths.hpp" + +namespace fs = boost::filesystem; + +namespace ousia { + +std::string SpecialPaths::getHomeDir() +{ + char *home = getenv("HOME"); + if (home) { + return std::string{home}; + } + return std::string{}; +} + +std::string SpecialPaths::getGlobalDataDir() +{ + return OUSIA_INSTALL_DATA_DIR; +} + +std::string SpecialPaths::getLocalDataDir() +{ + std::string home = getHomeDir(); + if (!home.empty()) { + fs::path homePath{home}; + return (homePath / ".local/share/ousia").generic_string(); + } + return std::string{}; +} + +std::string SpecialPaths::getDebugDataDir() +{ + fs::path debug{OUSIA_DEBUG_DIR}; + return (debug / "data").generic_string(); +} + +std::string SpecialPaths::getDebugTestdataDir() +{ + fs::path debug{OUSIA_DEBUG_DIR}; + return (debug / "testdata").generic_string(); +} + +} + -- cgit v1.2.3