summaryrefslogtreecommitdiff
path: root/gr-utils/python/modtool/core/newmod.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-utils/python/modtool/core/newmod.py')
-rw-r--r--gr-utils/python/modtool/core/newmod.py89
1 files changed, 0 insertions, 89 deletions
diff --git a/gr-utils/python/modtool/core/newmod.py b/gr-utils/python/modtool/core/newmod.py
deleted file mode 100644
index 1d22626e10..0000000000
--- a/gr-utils/python/modtool/core/newmod.py
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-# Copyright 2013, 2018 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-#
-""" Create a whole new out-of-tree module """
-
-from __future__ import print_function
-from __future__ import absolute_import
-from __future__ import unicode_literals
-
-import shutil
-import os
-import re
-import logging
-
-from gnuradio import gr
-from ..tools import SCMRepoFactory
-from .base import ModTool, ModToolException
-
-logger = logging.getLogger(__name__)
-
-class ModToolNewModule(ModTool):
- """ Create a new out-of-tree module """
- name = 'newmod'
- description = 'Create new empty module, use add to add blocks.'
- def __init__(self, module_name=None, srcdir=None, **kwargs):
- ModTool.__init__(self, None, module_name, **kwargs)
- # Don't call ModTool._validate(), that assumes an existing module.
- self.srcdir = srcdir
- self.directory = self.dir
-
- def assign(self):
- self.dir = os.path.join(self.directory, 'gr-{}'.format(self.info['modname']))
- if self.srcdir is None:
- self.srcdir = os.path.join(gr.prefix(),'share','gnuradio','modtool','templates','gr-newmod')
-
- def validate(self):
- """ Validates the arguments """
- if not self.info['modname']:
- raise ModToolException('Module name not specified.')
- if not re.match('[a-zA-Z0-9_]+$', self.info['modname']):
- raise ModToolException('Invalid module name.')
- try:
- os.stat(self.dir)
- except OSError:
- pass # This is what should happen
- else:
- raise ModToolException('The given directory exists.')
- if not os.path.isdir(self.srcdir):
- raise ModToolException('Could not find gr-newmod source dir \'' + self.srcdir + '\'')
-
- def run(self):
- """
- * Copy the example dir recursively
- * Open all files, rename howto and HOWTO to the module name
- * Rename files and directories that contain the word howto
- """
- # This portion will be covered by the CLI
- if not self.cli:
- self.assign()
- self.validate()
- self._setup_scm(mode='new')
- logger.info("Creating out-of-tree module in {}...".format(self.dir))
- try:
- shutil.copytree(self.srcdir, self.dir)
- os.chdir(self.dir)
- except OSError:
- raise ModToolException('Could not create directory {}.'.format(self.dir))
- for root, dirs, files in os.walk('.'):
- for filename in files:
- f = os.path.join(root, filename)
- with open(f, 'r') as filetext:
- s = filetext.read()
- s = s.replace('howto', self.info['modname'])
- s = s.replace('HOWTO', self.info['modname'].upper())
- with open(f, 'w') as filetext:
- filetext.write(s)
- if filename.find('howto') != -1:
- os.rename(f, os.path.join(root, filename.replace('howto', self.info['modname'])))
- if os.path.basename(root) == 'howto':
- os.rename(root, os.path.join(os.path.dirname(root), self.info['modname']))
- logger.info("Done.")
- if self.scm.init_repo(path_to_repo="."):
- logger.info("Created repository... you might want to commit before continuing.")
- logger.info("Use 'gr_modtool add' to add a new block to this currently empty module.")