diff options
author | Sergio Martins <smartins@kde.org> | 2017-08-16 18:47:34 +0100 |
---|---|---|
committer | Sergio Martins <smartins@kde.org> | 2017-08-16 18:47:34 +0100 |
commit | 3ff740ade2e4d5499b10418039cdc98b6bce3b8f (patch) | |
tree | 74aa3eeafb9a3aac6bd576d63233a39635f3d72a /scripts | |
parent | a7263793a335b1bc19d28940505b8152cee54cc2 (diff) |
Move the scrip to the correct folder
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/fix_json_database.py | 62 |
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 |