mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 20:18:54 +00:00
*: add indent control files
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
13c2f50cd5
commit
888ac268a0
25
.clang-format
Normal file
25
.clang-format
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
BasedOnStyle: LLVM
|
||||
Language: Cpp
|
||||
IndentWidth: 8
|
||||
UseTab: Always
|
||||
BreakBeforeBraces: Linux
|
||||
AlwaysBreakBeforeMultilineStrings: true
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: false
|
||||
IndentCaseLabels: false
|
||||
AlignEscapedNewlinesLeft: false
|
||||
AlignTrailingComments: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: false
|
||||
AlignAfterOpenBracket: true
|
||||
SpaceAfterCStyleCast: false
|
||||
MaxEmptyLinesToKeep: 2
|
||||
BreakBeforeBinaryOperators: NonAssignment
|
||||
BreakStringLiterals: false
|
||||
SortIncludes: false
|
||||
IncludeCategories:
|
||||
- Regex: '^(<|lib)'
|
||||
Priority: 0
|
||||
CommentPragmas: '\$(FRR|clippy)'
|
||||
ContinuationIndentWidth: 8
|
47
indent.py
Normal file
47
indent.py
Normal file
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# 2017 by David Lamparter, placed in public domain
|
||||
|
||||
import sys, re, subprocess, os
|
||||
|
||||
# find all DEFUNs
|
||||
defun_re = re.compile(
|
||||
r'^(DEF(UN(_NOSH|_HIDDEN)?|PY)\s*\(.*?)^(?=\s*\{)',
|
||||
re.M | re.S)
|
||||
define_re = re.compile(
|
||||
r'((^#\s*define[^\n]+[^\\]\n)+)',
|
||||
re.M | re.S)
|
||||
# find clang-format control that we just inserted
|
||||
clean_re = re.compile(
|
||||
r'^/\* \$FRR indent\$ \*/\s*\n\s*/\* clang-format (on|off) \*/\s*\n',
|
||||
re.M)
|
||||
|
||||
def wrap_file(fn):
|
||||
with open(fn, 'r') as fd:
|
||||
text = fd.read()
|
||||
|
||||
repl = r'/* $FRR indent$ */\n/* clang-format off */\n' + \
|
||||
r'\1' + \
|
||||
r'/* $FRR indent$ */\n/* clang-format on */\n'
|
||||
|
||||
# around each DEFUN, insert an indent-on/off comment
|
||||
text = defun_re.sub(repl, text)
|
||||
text = define_re.sub(repl, text)
|
||||
|
||||
ci = subprocess.Popen(['clang-format'], stdin = subprocess.PIPE, stdout = subprocess.PIPE)
|
||||
stdout, ign = ci.communicate(text)
|
||||
ci.wait()
|
||||
if ci.returncode != 0:
|
||||
raise IOError('clang-format returned %d' % (ci.returncode))
|
||||
|
||||
# remove the bits we inserted above
|
||||
final = clean_re.sub('', stdout)
|
||||
|
||||
tmpname = fn + '.indent'
|
||||
with open(tmpname, 'w') as ofd:
|
||||
ofd.write(final)
|
||||
os.rename(tmpname, fn)
|
||||
|
||||
if __name__ == '__main__':
|
||||
for fn in sys.argv[1:]:
|
||||
wrap_file(fn)
|
Loading…
Reference in New Issue
Block a user