diff options
author | jblum | 2009-05-29 06:43:35 +0000 |
---|---|---|
committer | jblum | 2009-05-29 06:43:35 +0000 |
commit | 693cf2facf18c95db1559b035b09137f0fc191e6 (patch) | |
tree | 7358d2beb562e32fb65bbe96185f79eac62c95bd | |
parent | efc3d118fe6e2386da9cf3d8a4a09df0efa749b1 (diff) | |
download | gnuradio-693cf2facf18c95db1559b035b09137f0fc191e6.tar.gz gnuradio-693cf2facf18c95db1559b035b09137f0fc191e6.tar.bz2 gnuradio-693cf2facf18c95db1559b035b09137f0fc191e6.zip |
Did a little work with path handling.
Additional blocks paths can be specified with environment variable GRC_BLOCKS_PATH
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@11163 221aa14e-8319-0410-a670-987f0aec2ac5
-rwxr-xr-x | grc/scripts/grc | 7 | ||||
-rwxr-xr-x | grc/scripts/usrp2_probe | 2 | ||||
-rwxr-xr-x | grc/scripts/usrp_probe | 2 | ||||
-rw-r--r-- | grc/src/platforms/base/Platform.py | 2 | ||||
-rw-r--r-- | grc/src/platforms/python/Platform.py | 21 |
5 files changed, 17 insertions, 17 deletions
diff --git a/grc/scripts/grc b/grc/scripts/grc index d0b8099f1..a2e3bc28a 100755 --- a/grc/scripts/grc +++ b/grc/scripts/grc @@ -18,6 +18,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA """ +import os + import pygtk pygtk.require('2.0') import gtk @@ -50,5 +52,8 @@ and you are welcome to redistribute it. #setup icon using icon theme try: gtk.window_set_default_icon(gtk.IconTheme().load_icon('gnuradio-grc', 256, 0)) except: pass - ActionHandler(args, Platform()) + #extract extra block paths from environment variable, separated by semicolon + try: extra_blocks = os.environ['GRC_BLOCKS_PATH'].split(';') + except: extra_blocks = list() + ActionHandler(args, Platform(extra_blocks=extra_blocks)) diff --git a/grc/scripts/usrp2_probe b/grc/scripts/usrp2_probe index baf44a479..fac2427de 100755 --- a/grc/scripts/usrp2_probe +++ b/grc/scripts/usrp2_probe @@ -30,7 +30,7 @@ import gobject from gnuradio.grc.gui.Dialogs import TextDisplay from gnuradio.grc.platforms.python.Platform import Platform -platform = Platform(block_paths_internal_only=['usrp2_probe.xml']) +platform = Platform(critical_only=True) from gnuradio.grc.platforms.gui.Platform import Platform platform = Platform(platform) diff --git a/grc/scripts/usrp_probe b/grc/scripts/usrp_probe index 3d7b6f0cb..3eb3de58e 100755 --- a/grc/scripts/usrp_probe +++ b/grc/scripts/usrp_probe @@ -28,7 +28,7 @@ import gtk from gnuradio.grc.gui.Dialogs import TextDisplay from gnuradio.grc.platforms.python.Platform import Platform -platform = Platform(block_paths_internal_only=['usrp_probe.xml']) +platform = Platform(critical_only=True) from gnuradio.grc.platforms.gui.Platform import Platform platform = Platform(platform) diff --git a/grc/src/platforms/base/Platform.py b/grc/src/platforms/base/Platform.py index 1f04fa0a6..35227d99f 100644 --- a/grc/src/platforms/base/Platform.py +++ b/grc/src/platforms/base/Platform.py @@ -61,8 +61,6 @@ class Platform(_Element): for filename in filter(lambda f: f.endswith('.xml'), filenames): self._load_blocks(os.path.join(dirpath, filename)) - def get_prefs_block(self): return self.get_new_flow_graph().get_new_block('preferences') - def _load_blocks(self, f): """ Load the block wrappers from the file path. diff --git a/grc/src/platforms/python/Platform.py b/grc/src/platforms/python/Platform.py index 9b0b3bb30..d2bb4627e 100644 --- a/grc/src/platforms/python/Platform.py +++ b/grc/src/platforms/python/Platform.py @@ -30,25 +30,22 @@ from Constants import \ BLOCK_TREE, DEFAULT_FLOW_GRAPH, \ BLOCKS_DIR +_critical_blocks_only = map(lambda b: os.path.join(BLOCKS_DIR, b), ['options.xml', 'usrp_probe.xml', 'usrp2_probe.xml']) + class Platform(_Platform): - def __init__(self, block_paths_internal_only=[], block_paths_external=[]): + def __init__(self, extra_blocks=[], critical_only=False): """ Make a platform for gnuradio. - The internal only list will replace the current block path. - @param block_paths_internal_only a list of blocks internal to this platform - @param block_paths_external a list of blocks to load in addition to the above blocks + @param extra_blocks a list of block paths to load in addition to main block library + @param critical_only only load critical blocks (used only for usrp probe scripts to speed up load time) """ #ensure hier dir if not os.path.exists(HIER_BLOCKS_LIB_DIR): os.mkdir(HIER_BLOCKS_LIB_DIR) - #handle internal/only - if block_paths_internal_only: - block_paths = map(lambda b: os.path.join(BLOCKS_DIR, b), ['options.xml'] + block_paths_internal_only) - else: block_paths = [BLOCKS_DIR] - #handle external - block_paths.extend(block_paths_external) - #append custom hiers - block_paths.append(HIER_BLOCKS_LIB_DIR) + if critical_only: block_paths = _critical_blocks_only + else: block_paths = extra_blocks + [HIER_BLOCKS_LIB_DIR, BLOCKS_DIR] + #convert block paths to absolute paths, ensure uniqueness + block_paths = set(map(os.path.abspath, block_paths)) #init _Platform.__init__( self, |