diff options
author | Josh Morman <jmorman@perspectalabs.com> | 2019-10-02 10:15:54 -0400 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2020-01-06 14:03:14 -0800 |
commit | 72b8a8068bff145c5f16a1d56ec852f87569145e (patch) | |
tree | a45d1c1986a24b13bd8d92e62faf0a5c59417cfd | |
parent | 661993be72349d9f582fe3e0b0bcd9609edf024f (diff) |
runtime: add GR_PREFS_PATH env variable search
When looking for the config file, allow the env variable
GR_PREFS_PATH to be searched so that multiple installations
of GR each with its own prefs can be used, similar to what
is currently done in GRC
-rw-r--r-- | gnuradio-runtime/lib/prefs.cc | 3 | ||||
-rw-r--r-- | gnuradio-runtime/lib/sys_paths.cc | 15 | ||||
-rw-r--r-- | gnuradio-runtime/python/gnuradio/gr/qa_prefs.py | 40 | ||||
-rw-r--r-- | grc/gui/Config.py | 2 |
4 files changed, 55 insertions, 5 deletions
diff --git a/gnuradio-runtime/lib/prefs.cc b/gnuradio-runtime/lib/prefs.cc index 4173973c2e..777d64211f 100644 --- a/gnuradio-runtime/lib/prefs.cc +++ b/gnuradio-runtime/lib/prefs.cc @@ -102,8 +102,7 @@ void prefs::_read_files(const std::vector<std::string>& filenames) section = "default"; key = okey; } - std::transform( - section.begin(), section.end(), section.begin(), ::tolower); + std::transform(section.begin(), section.end(), section.begin(), ::tolower); std::transform(key.begin(), key.end(), key.begin(), ::tolower); // value of a basic_option is always a std::vector<string>; we only // allow single values, so: diff --git a/gnuradio-runtime/lib/sys_paths.cc b/gnuradio-runtime/lib/sys_paths.cc index 6305bb40bc..2f26724e7c 100644 --- a/gnuradio-runtime/lib/sys_paths.cc +++ b/gnuradio-runtime/lib/sys_paths.cc @@ -66,8 +66,19 @@ const char* appdata_path() std::string __userconf_path() { - boost::filesystem::path p(appdata_path()); - p = p / ".gnuradio"; + const char* path; + + // First determine if there is an environment variable specifying the prefs path + path = getenv("GR_PREFS_PATH"); + boost::filesystem::path p; + if (path) { + p = path; + } + else { + p = appdata_path(); + p = p / ".gnuradio"; + } + return p.string(); } diff --git a/gnuradio-runtime/python/gnuradio/gr/qa_prefs.py b/gnuradio-runtime/python/gnuradio/gr/qa_prefs.py new file mode 100644 index 0000000000..45f9a7c73a --- /dev/null +++ b/gnuradio-runtime/python/gnuradio/gr/qa_prefs.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# +# Copyright 2019,2020 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio 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, or (at your option) +# any later version. +# +# GNU Radio 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 GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. +# + +from __future__ import print_function + + +from gnuradio import gr, gr_unittest + +class test_prefs (gr_unittest.TestCase): + + def test_001(self): + p = gr.prefs() + + # Read some options + self.assertFalse(p.has_option('doesnt', 'exist')) + + # At the time these tests are run, there is not necessarily a default + # configuration on the build system, so not much to do with testing here + +if __name__ == '__main__': + gr_unittest.run(test_prefs) diff --git a/grc/gui/Config.py b/grc/gui/Config.py index cd1062ff87..d78c3f040a 100644 --- a/grc/gui/Config.py +++ b/grc/gui/Config.py @@ -30,7 +30,7 @@ from six.moves import configparser HEADER = """\ # This contains only GUI settings for GRC and is not meant for users to edit. # -# GRC settings not accessible through the GUI are in gnuradio.conf under +# GRC settings not accessible through the GUI are in config.conf under # section [grc]. """ |