]>
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
13 compiled
= None # compiled regex
16 def __init__(self
, c
, r
):
22 # old #define VNL, VTYNL, VTY_NEWLINE
23 replaceEntry(re
.compile(r
"(VNL|VTYNL|VTY_NEWLINE)"), r
'"\\n"'),
24 # old #define VTY_GET_INTEGER(desc, v, str)
25 # old #define VTY_GET_INTEGER_RANGE(desc, v, str, min, max)
26 # old #define VTY_GET_ULONG(desc, v, str)
29 r
"(VTY_GET_INTEGER(_RANGE|)|VTY_GET_ULONG)[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;",
32 r
"(\4) = strtoul((\5), NULL, 10);\t/* \3 */",
34 # old #define VTY_GET_ULL(desc, v, str)
37 r
"VTY_GET_ULL[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;",
40 r
"(\2) = strtoull((\3), NULL, 10);\t/* \1 */",
42 # old #define VTY_GET_IPV4_ADDRESS(desc, v, str)
45 r
"VTY_GET_IPV4_ADDRESS[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;",
48 r
"inet_aton((\3), &(\2));\t/* \1 */",
50 # old #define VTY_GET_IPV4_PREFIX(desc, v, str)
53 r
"VTY_GET_IPV4_PREFIX[\s\(]*(.*?)\s*,\s*(.*?)\s*,\s*(.*?)(\s*|)(\)|,).*?;",
56 r
"str2prefix_ipv4((\3), &(\2));\t/* \1 */",
58 # old #define vty_outln(vty, str, ...)
60 re
.compile(r
'vty_outln[\s\(]*(.*?)\s*,\s*(".*?"|.*?)\s*(\)|,)', re
.M | re
.S
),
61 r
'vty_out(\1, \2 "\\n"\3',
67 with
open(fn
, "r") as fd
:
71 text
= re
.compiled
.sub(re
.repl
, text
)
73 tmpname
= fn
+ ".fixup"
74 with
open(tmpname
, "w") as ofd
:
76 os
.rename(tmpname
, fn
)
79 if __name__
== "__main__":
80 for fn
in sys
.argv
[1:]: