diff options
Diffstat (limited to 'gr-utils/python/modtool/modtool_rm.py')
-rw-r--r-- | gr-utils/python/modtool/modtool_rm.py | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/gr-utils/python/modtool/modtool_rm.py b/gr-utils/python/modtool/modtool_rm.py index 32dfee4806..47128dbc87 100644 --- a/gr-utils/python/modtool/modtool_rm.py +++ b/gr-utils/python/modtool/modtool_rm.py @@ -24,26 +24,27 @@ import os import re import sys import glob -from optparse import OptionGroup from util_functions import remove_pattern_from_file from modtool_base import ModTool from cmakefile_editor import CMakeFileEditor + class ModToolRemove(ModTool): """ Remove block (delete files and remove Makefile entries) """ name = 'remove' aliases = ('rm', 'del') + def __init__(self): ModTool.__init__(self) - def setup(self): - ModTool.setup(self) - options = self.options + def setup(self, options, args): + ModTool.setup(self, options, args) + if options.block_name is not None: self._info['pattern'] = options.block_name - elif len(self.args) >= 2: - self._info['pattern'] = self.args[1] + elif len(args) >= 2: + self._info['pattern'] = args[1] else: self._info['pattern'] = raw_input('Which blocks do you want to delete? (Regex): ') if len(self._info['pattern']) == 0: @@ -65,16 +66,19 @@ class ModToolRemove(ModTool): '^\s*s->addTest\(gr::%s::%s::suite\(\)\);\s*$' % ( self._info['modname'], base) ) + self.scm.mark_file_updated(self._file['qalib']) elif ext == '.cc': ed.remove_value('list', '\$\{CMAKE_CURRENT_SOURCE_DIR\}/%s' % filename, to_ignore_start='APPEND test_%s_sources' % self._info['modname']) + self.scm.mark_file_updated(ed.filename) else: filebase = os.path.splitext(filename)[0] ed.delete_entry('add_executable', filebase) ed.delete_entry('target_link_libraries', filebase) ed.delete_entry('GR_ADD_TEST', filebase) ed.remove_double_newlines() + self.scm.mark_file_updated(ed.filename) def _remove_py_test_case(filename=None, ed=None): """ Special function that removes the occurrences of a qa*.{cc,h} file @@ -102,6 +106,7 @@ class ModToolRemove(ModTool): for f in incl_files_deleted + swig_files_deleted: # TODO do this on all *.i files remove_pattern_from_file(self._file['swig'], _make_swig_regex(f)) + self.scm.mark_file_updated(self._file['swig']) if not self._skip_subdirs['python']: py_files_deleted = self._run_subdir('python', ('*.py',), ('GR_PYTHON_INSTALL',), cmakeedit_func=_remove_py_test_case) @@ -111,7 +116,6 @@ class ModToolRemove(ModTool): if not self._skip_subdirs['grc']: self._run_subdir('grc', ('*.xml',), ('install',)) - def _run_subdir(self, path, globs, makefile_vars, cmakeedit_func=None): """ Delete all files that match a certain pattern in path. path - The directory in which this will take place @@ -132,7 +136,7 @@ class ModToolRemove(ModTool): if len(files_filt) == 0: print "None found." return [] - # 2. Delete files, Makefile entries and other occurences + # 2. Delete files, Makefile entries and other occurrences files_deleted = [] ed = CMakeFileEditor('%s/CMakeLists.txt' % path) yes = self._info['yes'] @@ -148,6 +152,7 @@ class ModToolRemove(ModTool): continue files_deleted.append(b) print "Deleting %s." % f + self.scm.remove_file(f) os.unlink(f) print "Deleting occurrences of %s from %s/CMakeLists.txt..." % (b, path) for var in makefile_vars: @@ -155,5 +160,5 @@ class ModToolRemove(ModTool): if cmakeedit_func is not None: cmakeedit_func(b, ed) ed.write() + self.scm.mark_files_updated(('%s/CMakeLists.txt' % path,)) return files_deleted - |