mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 13:33:15 +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