]> git.puffer.fish Git - matthieu/frr.git/commitdiff
tools: drop cmd_check.py
authorQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 2 Dec 2016 19:09:11 +0000 (19:09 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Fri, 2 Dec 2016 19:09:11 +0000 (19:09 +0000)
CLI defuns are static so the compiler catches unused
definitions, ergo no longer necessary to have a script
for this.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
tools/cmd_check.py [deleted file]

diff --git a/tools/cmd_check.py b/tools/cmd_check.py
deleted file mode 100755 (executable)
index bfe90c4..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/usr/bin/python3
-# Command Checker
-# Copyright (C) 2016 Cumulus Networks, Inc.
-#
-# This file is part of Quagga.
-#
-# Quagga 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 2, or (at your option) any
-# later version.
-#
-# Quagga 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 Quagga; see the file COPYING.  If not, write to the Free
-# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-#  02111-1307, USA.
-#
-
-# Parses a source file, ensuring that CLI definitions (DEFUNs, ALIASs, etc)
-# have install_command called on them at some point.
-import sys
-import glob
-import re
-import os
-from pprint import pprint
-
-# patterns used to extract commands
-command_patterns = [
-  r'DEF.*\(.*\n\s*([0-9a-z_]*_cmd)',
-  r'ALIAS.*\(.*\n\s*([0-9a-z_]*_cmd)',
-]
-
-# patterns that count as installing the command
-install_patterns = [
-    r'install_element.*\(.*{0}',
-    r'INSTALL.*\(.*{0}'
-]
-
-def process(filename):
-    cmds = []
-    uninstalled = []
-    sourcetext = ''
-    headertext = ''
-
-    # read source file and header file
-    with open(filename) as cf:
-        try:
-            sourcetext = cf.read()
-            headerfile = filename.replace('.c', '.h')
-            if os.path.isfile(headerfile):
-                with open(headerfile) as hf:
-                  headertext = hf.read()
-        except:
-            print('Error reading {0}, skipping'.format(filename))
-            return
-
-    # build list of defined commands that aren't mentioned in header
-    for pattern in command_patterns:
-        matches = re.findall(pattern, sourcetext, re.M)
-        cmds += filter(lambda x: re.search(x, headertext) is None, matches)
-    # build list of not installed commands
-    for cmd in cmds:
-        pats = [ ip.format(cmd) for ip in install_patterns ]
-        if all([ re.search(pat, sourcetext) is None for pat in pats ]):
-            uninstalled.append(cmd)
-
-    if len(uninstalled) > 0:
-        print('\033[92m', end='')
-        print('{0}'.format(filename))
-        print('\033[0m', end='')
-        for cmd in uninstalled:
-            print('  {0}'.format(cmd))
-        print('')
-
-usage = """
-Usage:
-    ./cmd_check.py <path> [<path>...]
-
-    where 'path' is a C source file or directory
-    containing C source files
-"""
-
-if __name__ == '__main__':
-    if len(sys.argv) < 2:
-        print(usage)
-        exit()
-
-    cwd = os.getcwd()
-    for arg in sys.argv[1:]:
-        # collect all c files
-        globstr = arg
-        if os.path.isdir(arg):
-            os.chdir(arg)
-            globstr = '*.c'
-        for filename in glob.glob(globstr):
-            process(filename)
-        os.chdir(cwd)