diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-08-19 16:22:31 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-08-19 16:36:51 (GMT) |
commit | f416fe2749a959ad26544ead709683d3800059e4 (patch) | |
tree | 2813851a656f98300cba2dd7e1cf47597b19d891 /Swiften/Application/UnixApplicationPathProvider.h | |
parent | b44ed4b36505ece31f29cdd0803af9949463f94b (diff) | |
download | swift-contrib-f416fe2749a959ad26544ead709683d3800059e4.zip swift-contrib-f416fe2749a959ad26544ead709683d3800059e4.tar.bz2 |
Extract dir providing functionality from application class.
Diffstat (limited to 'Swiften/Application/UnixApplicationPathProvider.h')
-rw-r--r-- | Swiften/Application/UnixApplicationPathProvider.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Swiften/Application/UnixApplicationPathProvider.h b/Swiften/Application/UnixApplicationPathProvider.h new file mode 100644 index 0000000..04387f7 --- /dev/null +++ b/Swiften/Application/UnixApplicationPathProvider.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "Swiften/Application/ApplicationPathProvider.h" + +#include <iostream> + +namespace Swift { + class UnixApplicationPathProvider : public ApplicationPathProvider { + public: + UnixApplicationPathProvider(const String& name) : ApplicationPathProvider(name) { + } + + virtual boost::filesystem::path getHomeDir() const { + return boost::filesystem::path(getenv("HOME")); + } + + boost::filesystem::path getSettingsDir() const { + boost::filesystem::path result(getHomeDir() / ("." + getName().getLowerCase().getUTF8String())); + try { + boost::filesystem::create_directory(result); + } + catch (const boost::filesystem::filesystem_error& e) { + std::cerr << "ERROR: " << e.what() << std::endl; + } + return result; + } + }; +} + +#endif |