summaryrefslogtreecommitdiff
path: root/gr-utils/python/modtool/cli/add.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-utils/python/modtool/cli/add.py')
-rw-r--r--gr-utils/python/modtool/cli/add.py140
1 files changed, 0 insertions, 140 deletions
diff --git a/gr-utils/python/modtool/cli/add.py b/gr-utils/python/modtool/cli/add.py
deleted file mode 100644
index e65bac1176..0000000000
--- a/gr-utils/python/modtool/cli/add.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#
-# Copyright 2018 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-#
-""" Module to add new blocks """
-
-from __future__ import print_function
-from __future__ import absolute_import
-from __future__ import unicode_literals
-
-import re
-import getpass
-
-import click
-
-from ..core import ModToolAdd
-from ..tools import SequenceCompleter, ask_yes_no
-from .base import common_params, block_name, run, cli_input, ModToolException
-
-
-@click.command('add')
-@click.option('-t', '--block-type', type=click.Choice(ModToolAdd.block_types),
- help="One of {}.".format(', '.join(ModToolAdd.block_types)))
-@click.option('--license-file',
- help="File containing the license header for every source code file.")
-@click.option('--copyright',
- help="Name of the copyright holder (you or your company) MUST be a quoted string.")
-@click.option('--argument-list', default="",
- help="The argument list for the constructor and make functions.")
-@click.option('--add-python-qa', is_flag=True, default=None,
- help="If given, Python QA code is automatically added if possible.")
-@click.option('--add-cpp-qa', is_flag=True, default=None,
- help="If given, C++ QA code is automatically added if possible.")
-@click.option('--skip-cmakefiles', is_flag=True,
- help="If given, only source files are written, but CMakeLists.txt files are left unchanged.")
-@click.option('-l', '--lang', type=click.Choice(ModToolAdd.language_candidates),
- help="Programming Language")
-@common_params
-@block_name
-def cli(**kwargs):
- """Adds a block to the out-of-tree module."""
- kwargs['cli'] = True
- self = ModToolAdd(**kwargs)
- click.secho("GNU Radio module name identified: " + self.info['modname'], fg='green')
- get_blocktype(self)
- get_lang(self)
- click.secho("Language: {}".format({'cpp': 'C++', 'python': 'Python'}[self.info['lang']]), fg='green')
- if ((self.skip_subdirs['lib'] and self.info['lang'] == 'cpp')
- or (self.skip_subdirs['python'] and self.info['lang'] == 'python')):
- raise ModToolException('Missing or skipping relevant subdir.')
- get_blockname(self)
- click.secho("Block/code identifier: " + self.info['blockname'], fg='green')
- self.info['fullblockname'] = self.info['modname'] + '_' + self.info['blockname']
- if not self.license_file:
- get_copyrightholder(self)
- self.info['license'] = self.setup_choose_license()
- get_arglist(self)
- get_py_qa(self)
- get_cpp_qa(self)
- if self.info['version'] == 'autofoo' and not self.skip_cmakefiles:
- click.secho("Warning: Autotools modules are not supported. "+
- "Files will be created, but Makefiles will not be edited.",
- fg='yellow')
- self.skip_cmakefiles = True
- run(self)
-
-def get_blocktype(self):
- """ Get the blocktype of the block to be added """
- if self.info['blocktype'] is None:
- click.secho(str(self.block_types), fg='yellow')
- with SequenceCompleter(self.block_types):
- while self.info['blocktype'] not in self.block_types:
- self.info['blocktype'] = cli_input("Enter block type: ")
- if self.info['blocktype'] not in self.block_types:
- click.secho('Must be one of ' + str(self.block_types), fg='yellow')
-
-def get_lang(self):
- """ Get the Programming Language of the block to be added """
- if self.info['lang'] is None:
- with SequenceCompleter(self.language_candidates):
- while self.info['lang'] not in self.language_candidates:
- self.info['lang'] = cli_input("Language (python/cpp): ")
- if self.info['lang'] == 'c++':
- self.info['lang'] = 'cpp'
-
-def get_blockname(self):
- """ Get the blockname"""
- if not self.info['blockname'] or self.info['blockname'].isspace():
- while not self.info['blockname'] or self.info['blockname'].isspace():
- self.info['blockname'] = cli_input("Enter name of block/code (without module name prefix): ")
- if not re.match('^[a-zA-Z0-9_]+$', self.info['blockname']):
- raise ModToolException('Invalid block name.')
-
-def get_copyrightholder(self):
- """ Get the copyrightholder of the block to be added """
- if not self.info['copyrightholder'] or self.info['copyrightholder'].isspace():
- user = getpass.getuser()
- git_user = self.scm.get_gituser()
- if git_user:
- copyright_candidates = (user, git_user, 'GNU Radio')
- else:
- copyright_candidates = (user, 'GNU Radio')
- with SequenceCompleter(copyright_candidates):
- self.info['copyrightholder'] = cli_input("Please specify the copyright holder: ")
- if not self.info['copyrightholder'] or self.info['copyrightholder'].isspace():
- self.info['copyrightholder'] = "gr-{} author".format(self.info['modname'])
- elif self.info['is_component']:
- click.secho("For GNU Radio components the FSF is added as copyright holder",
- fg='cyan')
-
-def get_arglist(self):
- """ Get the argument list of the block to be added """
- if self.info['arglist'] is not None:
- self.info['arglist'] = click.prompt(click.style(
- 'Enter valid argument list, including default arguments: \n',
- fg='cyan'),
- prompt_suffix='',
- default='',
- show_default=False)
-
-def get_py_qa(self):
- """ Get a boolean value for addition of py_qa """
- if self.add_py_qa is None:
- if not (self.info['blocktype'] in ('noblock') or self.skip_subdirs['python']):
- self.add_py_qa = ask_yes_no(click.style('Add Python QA code?', fg='cyan'), True)
- else:
- self.add_py_qa = False
-
-def get_cpp_qa(self):
- """ Get a boolean value for addition of cpp_qa """
- if self.add_cc_qa is None:
- if self.info['lang'] == 'cpp':
- self.add_cc_qa = ask_yes_no(click.style('Add C++ QA code?', fg='cyan'),
- not self.add_py_qa)
- else:
- self.add_cc_qa = False