diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-20 17:46:41 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-20 17:46:41 +0100 |
commit | 8755bbe309d2f00c7bc73a6a6304ed8860a9a94d (patch) | |
tree | a364d21db838a5a27eb76a1639ddbdb882b4aedd /src/plugins/filesystem/SpecialPaths.cpp | |
parent | b61de477f91e9f6ec68a7e7b9ab5d4bddc632843 (diff) |
Implemented automatic generation of default search paths
Diffstat (limited to 'src/plugins/filesystem/SpecialPaths.cpp')
-rw-r--r-- | src/plugins/filesystem/SpecialPaths.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. +*/ + +#include <cstdlib> +#include <boost/filesystem.hpp> + +#include <config.h> + +#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(); +} + +} + |