summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Müller <marcus.mueller@ettus.com>2016-05-07 17:14:49 +0200
committerMarcus Müller <marcus.mueller@ettus.com>2016-05-07 17:14:49 +0200
commit438fb307a0b593706a212a3cd6e16f217a8704d0 (patch)
tree2d8c41697fec83e9ea3274ecf1133be7bec8a225
parent6aa995a5477feea1b6f9ef1f49c3045c25d147b1 (diff)
added user settings directory as a gr::-accessible path
* removing a bit of "magic paths" in prefs.cc * added constant
-rw-r--r--gnuradio-runtime/include/gnuradio/sys_paths.h3
-rw-r--r--gnuradio-runtime/lib/prefs.cc13
-rw-r--r--gnuradio-runtime/lib/sys_paths.cc9
3 files changed, 17 insertions, 8 deletions
diff --git a/gnuradio-runtime/include/gnuradio/sys_paths.h b/gnuradio-runtime/include/gnuradio/sys_paths.h
index 1bd2e0deb7..efea07b599 100644
--- a/gnuradio-runtime/include/gnuradio/sys_paths.h
+++ b/gnuradio-runtime/include/gnuradio/sys_paths.h
@@ -32,6 +32,9 @@ namespace gr {
//! directory to store application data
GR_RUNTIME_API const char *appdata_path();
+ //! directory to store user configuration
+ GR_RUNTIME_API const char *userconf_path();
+
} /* namespace gr */
#endif /* GR_SYS_PATHS_H */
diff --git a/gnuradio-runtime/lib/prefs.cc b/gnuradio-runtime/lib/prefs.cc
index b303ffdaf9..7fd38ef6d7 100644
--- a/gnuradio-runtime/lib/prefs.cc
+++ b/gnuradio-runtime/lib/prefs.cc
@@ -77,10 +77,9 @@ namespace gr {
// Find if there is a ~/.gnuradio/config.conf file and add this to
// the end of the file list to override any preferences in the
// installed path config files.
- fs::path homedir = fs::path(gr::appdata_path());
- homedir = homedir/".gnuradio/config.conf";
- if(fs::exists(homedir)) {
- fnames.push_back(homedir.string());
+ fs::path userconf = fs::path(gr::userconf_path()) / "config.conf";
+ if(fs::exists(userconf)) {
+ fnames.push_back(userconf.string());
}
return fnames;
@@ -222,10 +221,8 @@ namespace gr {
prefs::save()
{
std::string conf = to_string();
-
- fs::path homedir = fs::path(gr::appdata_path());
- homedir = homedir/".gnuradio/config.conf";
- fs::ofstream fout(homedir);
+ fs::path userconf = fs::path(gr::userconf_path()) / "config.conf";
+ fs::ofstream fout(userconf);
fout << conf;
fout.close();
}
diff --git a/gnuradio-runtime/lib/sys_paths.cc b/gnuradio-runtime/lib/sys_paths.cc
index 64853c68b2..3bf6697bac 100644
--- a/gnuradio-runtime/lib/sys_paths.cc
+++ b/gnuradio-runtime/lib/sys_paths.cc
@@ -23,6 +23,8 @@
#include <cstdlib> //getenv
#include <cstdio> //P_tmpdir (maybe)
+#include <boost/filesystem/path.hpp>
+
namespace gr {
const char *tmp_path()
@@ -62,4 +64,11 @@ namespace gr {
return tmp_path();
}
+ const char *userconf_path()
+ {
+ boost::filesystem::path p(appdata_path());
+ p = p / ".gnuradio";
+ return p.c_str();
+ }
+
} /* namespace gr */