13
13
from json import loads as json_loads
14
14
from json import JSONDecodeError
15
15
16
- IS_ROOT = getuid () == 0
17
- SUDO = '' if IS_ROOT else 'sudo '
18
- CMD_RELOAD = f'{ SUDO } systemctl reload nftables.service' # has to be changed if no systemd is available
19
16
CONFIG = '/etc/nftables.conf'
20
17
BASE_DIR = '/etc/nftables.d'
21
18
ADDON_DIR = '/etc/nftables.d/addons'
22
19
CONFIG_EXT = 'nft'
23
20
APPENDIX_4 = 'v4'
24
21
APPENDIX_6 = 'v6'
25
22
23
+ IS_ROOT = getuid () == 0
24
+ SUDO = '' if IS_ROOT else 'sudo '
25
+ CMD_RELOAD = f'{ SUDO } systemctl reload nftables.service' # has to be changed if no systemd is available
26
+ VAR_SINGLE_END = '_1'
27
+
26
28
if not CONFIG_EXT .startswith ('.' ):
27
29
CONFIG_EXT = f'.{ CONFIG_EXT } '
28
30
@@ -41,7 +43,7 @@ def ensure_list(data: (str, list)) -> list:
41
43
return [data ]
42
44
43
45
44
- def format_var (name : str , data : list , version : int , as_set : bool = True , fallback : str = None ) -> str :
46
+ def format_var (name : str , data : list , version : int , fallback : str = None ) -> str :
45
47
if version not in FALLBACK_VAR_VALUE :
46
48
version = 4
47
49
@@ -50,7 +52,10 @@ def format_var(name: str, data: list, version: int, as_set: bool = True, fallbac
50
52
if append not in [None , ' ' , '' ]:
51
53
name = f'{ name } _{ append } '
52
54
53
- if as_set or len (data ) > 1 :
55
+ if name .endswith (VAR_SINGLE_END ) and len (data ) > 0 :
56
+ data = data [0 ]
57
+
58
+ if len (data ) > 1 :
54
59
raw = f"define { name } = {{ %s }}"
55
60
56
61
else :
0 commit comments