From 4c4a85f2ebc43c9b7b3d5fdb8ad8387eae735f5f Mon Sep 17 00:00:00 2001
From: japm48 <japm48@users.noreply.github.com>
Date: Thu, 26 Mar 2020 16:01:00 +0100
Subject: gr-utils: restructure {mod,block}tool folders

Move modtool and blocktool outside of the python folder,
as per issue #2462.
---
 gr-utils/python/modtool/core/disable.py | 161 --------------------------------
 1 file changed, 161 deletions(-)
 delete mode 100644 gr-utils/python/modtool/core/disable.py

(limited to 'gr-utils/python/modtool/core/disable.py')

diff --git a/gr-utils/python/modtool/core/disable.py b/gr-utils/python/modtool/core/disable.py
deleted file mode 100644
index 1fb4628312..0000000000
--- a/gr-utils/python/modtool/core/disable.py
+++ /dev/null
@@ -1,161 +0,0 @@
-#
-# Copyright 2013, 2018, 2019 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-#
-""" Disable blocks module """
-
-from __future__ import print_function
-from __future__ import absolute_import
-from __future__ import unicode_literals
-
-import os
-import re
-import sys
-import logging
-
-from ..tools import CMakeFileEditor
-from .base import ModTool, ModToolException
-
-logger = logging.getLogger(__name__)
-
-
-class ModToolDisable(ModTool):
-    """ Disable block (comments out CMake entries for files) """
-    name = 'disable'
-    description = 'Disable selected block in module.'
-
-    def __init__(self, blockname=None, **kwargs):
-        ModTool.__init__(self, blockname, **kwargs)
-        self.info['pattern'] = blockname
-
-    def validate(self):
-        """ Validates the arguments """
-        ModTool._validate(self)
-        if not self.info['pattern'] or self.info['pattern'].isspace():
-            raise ModToolException("Invalid pattern!")
-
-    def run(self):
-        """ Go, go, go! """
-        def _handle_py_qa(cmake, fname):
-            """ Do stuff for py qa """
-            cmake.comment_out_lines('GR_ADD_TEST.*'+fname)
-            self.scm.mark_file_updated(cmake.filename)
-            return True
-        def _handle_py_mod(cmake, fname):
-            """ Do stuff for py extra files """
-            try:
-                with open(self._file['pyinit']) as f:
-                    initfile = f.read()
-            except IOError:
-                logger.warning("Could not edit __init__.py, that might be a problem.")
-                return False
-            pymodname = os.path.splitext(fname)[0]
-            initfile = re.sub(r'((from|import)\s+\b'+pymodname+r'\b)', r'#\1', initfile)
-            with open(self._file['pyinit'], 'w') as f:
-                f.write(initfile)
-            self.scm.mark_file_updated(self._file['pyinit'])
-            return False
-        def _handle_cc_qa(cmake, fname):
-            """ Do stuff for cc qa """
-            if self.info['version'] == '37':
-                cmake.comment_out_lines(r'\$\{CMAKE_CURRENT_SOURCE_DIR\}/'+fname)
-                fname_base = os.path.splitext(fname)[0]
-                ed = CMakeFileEditor(self._file['qalib']) # Abusing the CMakeFileEditor...
-                ed.comment_out_lines(r'#include\s+"{}.h"'.format(fname_base), comment_str='//')
-                ed.comment_out_lines(r'{}::suite\(\)'.format(fname_base), comment_str='//')
-                ed.write()
-                self.scm.mark_file_updated(self._file['qalib'])
-            elif self.info['version'] == '38':
-                fname_qa_cc = 'qa_{}.cc'.format(self.info['blockname'])
-                cmake.comment_out_lines(fname_qa_cc)
-            elif self.info['version'] == '36':
-                cmake.comment_out_lines('add_executable.*'+fname)
-                cmake.comment_out_lines('target_link_libraries.*'+os.path.splitext(fname)[0])
-                cmake.comment_out_lines('GR_ADD_TEST.*'+os.path.splitext(fname)[0])
-            self.scm.mark_file_updated(cmake.filename)
-            return True
-        def _handle_h_swig(cmake, fname):
-            """ Comment out include files from the SWIG file,
-            as well as the block magic """
-            with open(self._file['swig']) as f:
-                swigfile = f.read()
-            (swigfile, nsubs) = re.subn(r'(.include\s+"({}/)?{}")'.format(
-                                        self.info['modname'], fname),
-                                        r'//\1', swigfile)
-            if nsubs > 0:
-                logger.info("Changing {}...".format(self._file['swig']))
-            if nsubs > 1: # Need to find a single BLOCK_MAGIC
-                blockname = os.path.splitext(fname[len(self.info['modname'])+1:])[0]
-                if self.info['version'] in ('37', '38'):
-                    blockname = os.path.splitext(fname)[0]
-                (swigfile, nsubs) = re.subn('(GR_SWIG_BLOCK_MAGIC2?.+{}.+;)'.format(blockname), r'//\1', swigfile)
-                if nsubs > 1:
-                    logger.warning("Hm, changed more then expected while editing {}.".format(self._file['swig']))
-            with open(self._file['swig'], 'w') as f:
-                f.write(swigfile)
-            self.scm.mark_file_updated(self._file['swig'])
-            return False
-        def _handle_i_swig(cmake, fname):
-            """ Comment out include files from the SWIG file,
-            as well as the block magic """
-            with open(self._file['swig']) as f:
-                swigfile = f.read()
-            blockname = os.path.splitext(fname[len(self.info['modname'])+1:])[0]
-            if self.info['version'] in ('37', '38'):
-                blockname = os.path.splitext(fname)[0]
-            swigfile = re.sub(r'(%include\s+"'+fname+'")', r'//\1', swigfile)
-            logger.info("Changing {}...".format(self._file['swig']))
-            swigfile = re.sub('(GR_SWIG_BLOCK_MAGIC2?.+'+blockname+'.+;)', r'//\1', swigfile)
-            with open(self._file['swig'], 'w') as f:
-                f.write(swigfile)
-            self.scm.mark_file_updated(self._file['swig'])
-            return False
-
-        # This portion will be covered by the CLI
-        if not self.cli:
-            self.validate()
-        else:
-            from ..cli import cli_input
-        # List of special rules: 0: subdir, 1: filename re match, 2: callback
-        special_treatments = (
-                ('python', r'qa.+py$', _handle_py_qa),
-                ('python', r'^(?!qa).+py$', _handle_py_mod),
-                ('lib', r'qa.+\.cc$', _handle_cc_qa),
-                ('include/{}'.format(self.info['modname']), r'.+\.h$', _handle_h_swig),
-                ('include', r'.+\.h$', _handle_h_swig),
-                ('swig', r'.+\.i$', _handle_i_swig)
-        )
-        for subdir in self._subdirs:
-            if self.skip_subdirs[subdir]:
-                continue
-            if self.info['version'] in ('37', '38') and subdir == 'include':
-                subdir = 'include/{}'.format(self.info['modname'])
-            try:
-                cmake = CMakeFileEditor(os.path.join(subdir, 'CMakeLists.txt'))
-            except IOError:
-                continue
-            logger.info("Traversing {}...".format(subdir))
-            filenames = cmake.find_filenames_match(self.info['pattern'])
-            yes = self.info['yes']
-            for fname in filenames:
-                file_disabled = False
-                if not yes:
-                    ans = cli_input("Really disable {}? [Y/n/a/q]: ".format(fname)).lower().strip()
-                    if ans == 'a':
-                        yes = True
-                    if ans == 'q':
-                        sys.exit(0)
-                    if ans == 'n':
-                        continue
-                for special_treatment in special_treatments:
-                    if special_treatment[0] == subdir and re.match(special_treatment[1], fname):
-                        file_disabled = special_treatment[2](cmake, fname)
-                if not file_disabled:
-                    cmake.disable_file(fname)
-            cmake.write()
-            self.scm.mark_files_updated((os.path.join(subdir, 'CMakeLists.txt'),))
-        logger.warning("Careful: 'gr_modtool disable' does not resolve dependencies.")
-- 
cgit v1.2.3