]>
git.proxmox.com Git - mirror_frr.git/blob - tools/fixup-deprecated.py
2 # -*- coding: utf-8 -*-
4 # Script used to replace deprecated quagga/frr mactors/types/etc.
6 # loosly based on indent.py, 2017 by David Lamparter
7 # 2018 by Lou Berger, placed in public domain
9 import sys
, re
, subprocess
, os
12 compiled
= None #compiled regex
14 def __init__(self
, c
, r
):
19 # old #define VNL, VTYNL, VTY_NEWLINE
20 replaceEntry(re
.compile(r
'(VNL|VTYNL|VTY_NEWLINE)'),
22 # old #define VTY_GET_INTEGER(desc, v, str)
23 # old #define VTY_GET_INTEGER_RANGE(desc, v, str, min, max)
24 # old #define VTY_GET_ULONG(desc, v, str)
25 replaceEntry(re
.compile(r
'(VTY_GET_INTEGER(_RANGE|)|VTY_GET_ULONG)[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;', re
.M | re
.S
),
26 r
'(\4) = strtoul((\5), NULL, 10);\t/* \3 */'),
27 # old #define VTY_GET_ULL(desc, v, str)
28 replaceEntry(re
.compile(r
'VTY_GET_ULL[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;', re
.M | re
.S
),
29 r
'(\2) = strtoull((\3), NULL, 10);\t/* \1 */'),
30 # old #define VTY_GET_IPV4_ADDRESS(desc, v, str)
31 replaceEntry(re
.compile(r
'VTY_GET_IPV4_ADDRESS[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;', re
.M | re
.S
),
32 r
'inet_aton((\3), &(\2));\t/* \1 */'),
33 # old #define VTY_GET_IPV4_PREFIX(desc, v, str)
34 replaceEntry(re
.compile(r
'VTY_GET_IPV4_PREFIX[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;', re
.M | re
.S
),
35 r
'str2prefix_ipv4((\3), &(\2));\t/* \1 */'),
36 # old #define vty_outln(vty, str, ...)
37 replaceEntry(re
.compile(r
'vty_outln[\s\(]*(.*?)\s*,\s*(".*?"|.*?)\s*(\)|,)', re
.M | re
.S
),
38 r
'vty_out(\1, \2 "\\n"\3'),
42 with
open(fn
, 'r') as fd
:
46 text
= re
.compiled
.sub(re
.repl
,text
)
48 tmpname
= fn
+ '.fixup'
49 with
open(tmpname
, 'w') as ofd
:
51 os
.rename(tmpname
, fn
)
53 if __name__
== '__main__':
54 for fn
in sys
.argv
[1:]: