aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSergio Martins <smartins@kde.org>2017-08-16 18:47:34 +0100
committerSergio Martins <smartins@kde.org>2017-08-16 18:47:34 +0100
commit3ff740ade2e4d5499b10418039cdc98b6bce3b8f (patch)
tree74aa3eeafb9a3aac6bd576d63233a39635f3d72a /scripts
parenta7263793a335b1bc19d28940505b8152cee54cc2 (diff)
Move the scrip to the correct folder
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/fix_json_database.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/scripts/fix_json_database.py b/scripts/fix_json_database.py
new file mode 100755
index 00000000..1c3ff586
--- /dev/null
+++ b/scripts/fix_json_database.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python2
+
+
+# This file is part of the clazy static checker.
+
+# Copyright (C) 2017 Sergio Martins <smartins@kde.org>
+
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+
+# This library 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
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public License
+# along with this library; see the file COPYING.LIB. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+# This script is useful for fixing the json database, in case there's compiler flags
+# you want to remove or add. One such example is when you're required to build your
+# project with Apple clang, which will then generate pch errors when running
+# clazy.
+
+import json, sys, string
+
+#-------------------------------------------------------------------------------
+# Filters. Configure here.
+
+# Removes arguments starting with -include
+def filter_no_pch(str):
+ return not str.startswith("-include")
+
+def remove_pch(c_splitted):
+ return filter(filter_no_pch, c_splitted)
+
+def fix_command(c):
+ c_splitted = c.split()
+ c_splitted = remove_pch(c_splitted)
+ return string.join(c_splitted)
+#-------------------------------------------------------------------------------
+# Main:
+
+f = open(sys.argv[1], 'r')
+contents = f.read()
+f.close()
+
+decoded = json.loads(contents)
+new_decoded = []
+
+for cmd in decoded:
+ if 'command' not in cmd:
+ continue
+
+ cmd['command'] = fix_command(cmd['command'])
+ new_decoded.append(cmd)
+
+new_contents = json.dumps(new_decoded)
+print new_contents