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