mirror of https://github.com/gnss-sdr/gnss-sdr
129 lines
5.2 KiB
Python
129 lines
5.2 KiB
Python
#!/usr/bin/env python
|
|
#
|
|
# Copyright 2013 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 volk_gnsssdr_modtool import volk_gnsssdr_modtool, volk_gnsssdr_modtool_config
|
|
from optparse import OptionParser, OptionGroup
|
|
|
|
import exceptions
|
|
import os
|
|
import sys
|
|
|
|
if __name__ == '__main__':
|
|
parser = OptionParser();
|
|
actions = OptionGroup(parser, 'Actions');
|
|
actions.add_option('-i', '--install', action='store_true',
|
|
help='Create a new volk_gnsssdr module.')
|
|
parser.add_option('-b', '--base_path', action='store', default=None,
|
|
help='Base path for action. By default, volk_gnsssdr_modtool.cfg loads this value.')
|
|
parser.add_option('-n', '--kernel_name', action='store', default=None,
|
|
help='Kernel name for action. No default')
|
|
parser.add_option('-c', '--config', action='store', dest='config_file', default=None,
|
|
help='Config file for volk_gnsssdr_modtool. By default, volk_gnsssdr_modtool.cfg in the local directory will be used/created.')
|
|
actions.add_option('-a', '--add_kernel', action='store_true',
|
|
help='Add kernel from existing volk_gnsssdr module. Requires: -n. Optional: -b')
|
|
actions.add_option('-A', '--add_all_kernels', action='store_true',
|
|
help='Add all kernels from existing volk_gnsssdr module. Optional: -b')
|
|
actions.add_option('-x', '--remove_kernel', action='store_true',
|
|
help='Remove kernel from module. Required: -n. Optional: -b')
|
|
actions.add_option('-l', '--list', action='store_true',
|
|
help='List all kernels in the base.')
|
|
actions.add_option('-k', '--kernels', action='store_true',
|
|
help='List all kernels in the module.')
|
|
actions.add_option('-r', '--remote_list', action='store_true',
|
|
help='List all available kernels in remote volk_gnsssdr module. Requires: -b.')
|
|
actions.add_option('-m', '--moo', action='store_true',
|
|
help='Have you mooed today?')
|
|
parser.add_option_group(actions)
|
|
|
|
(options, args) = parser.parse_args();
|
|
if len(sys.argv) < 2:
|
|
parser.print_help()
|
|
|
|
elif options.moo:
|
|
print " (__) "
|
|
print " (oo) "
|
|
print " /------\/ "
|
|
print " / | || "
|
|
print " * /\---/\ "
|
|
print " ~~ ~~ "
|
|
|
|
else:
|
|
my_cfg = volk_gnsssdr_modtool_config(options.config_file);
|
|
|
|
my_modtool = volk_gnsssdr_modtool(my_cfg.get_map(my_cfg.config_name));
|
|
|
|
|
|
if options.install:
|
|
my_modtool.make_module_skeleton();
|
|
my_modtool.write_default_cfg(my_cfg.cfg);
|
|
|
|
|
|
if options.add_kernel:
|
|
if not options.kernel_name:
|
|
raise exceptions.IOError("This action requires the -n option.");
|
|
else:
|
|
name = options.kernel_name;
|
|
if options.base_path:
|
|
base = options.base_path;
|
|
else:
|
|
base = my_cfg.cfg.get(my_cfg.config_name, 'base');
|
|
my_modtool.import_kernel(name, base);
|
|
|
|
if options.remove_kernel:
|
|
if not options.kernel_name:
|
|
raise exceptions.IOError("This action requires the -n option.");
|
|
else:
|
|
name = options.kernel_name;
|
|
my_modtool.remove_kernel(name);
|
|
|
|
if options.add_all_kernels:
|
|
|
|
if options.base_path:
|
|
base = options.base_path;
|
|
else:
|
|
base = my_cfg.cfg.get(my_cfg.config_name, 'base');
|
|
kernelset = my_modtool.get_current_kernels(base);
|
|
for i in kernelset:
|
|
my_modtool.import_kernel(i, base);
|
|
|
|
if options.remote_list:
|
|
if not options.base_path:
|
|
raise exceptions.IOError("This action requires the -b option. Try -l or -k for listing kernels in the base or the module.")
|
|
else:
|
|
base = options.base_path;
|
|
kernelset = my_modtool.get_current_kernels(base);
|
|
for i in kernelset:
|
|
print i;
|
|
|
|
if options.list:
|
|
kernelset = my_modtool.get_current_kernels();
|
|
for i in kernelset:
|
|
print i;
|
|
|
|
if options.kernels:
|
|
dest = my_cfg.cfg.get(my_cfg.config_name, 'destination');
|
|
name = my_cfg.cfg.get(my_cfg.config_name, 'name');
|
|
base = os.path.join(dest, 'volk_gnsssdr_' + name);
|
|
kernelset = my_modtool.get_current_kernels(base);
|
|
for i in kernelset:
|
|
print i;
|