Skip to content

Commit c87b6c1

Browse files
ENT-14056: Replace cache/config-path from .cfengine to .cache/.config
Ticket: ENT-14056 Signed-off-by: Simon Halvorsen <simon.halvorsen@northern.tech>
1 parent aea5c4b commit c87b6c1

2 files changed

Lines changed: 49 additions & 11 deletions

File tree

src/cfengine_cli/paths.py

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
from cf_remote.paths import path_append
55

66

7-
def cfengine_dir(subdir=None):
7+
def cfengine_cache_dir(subdir=None):
88
"""
9-
Returns the directory used by the Python tools for temporary files,
10-
global config, downloads, etc.
9+
Returns the directory used by the Python tools for temporary
10+
files, downloads, etc.
1111
12-
Defaults to ~/.cfengine/, but can be overridden via the CFENGINE_DIR
12+
Defaults to ~/.cache/cfengine/, but can be overridden via the CFENGINE_DIR
1313
environment variable.
1414
"""
1515
override_dir = os.getenv("CFENGINE_DIR")
@@ -27,7 +27,32 @@ def cfengine_dir(subdir=None):
2727

2828
return path_append(override_dir, subdir)
2929

30-
return path_append("~/.cfengine/", subdir)
30+
return path_append("~/.cache/cfengine/", subdir)
31+
32+
33+
def cfengine_config_dir(subdir=None):
34+
"""
35+
Returns the directory used by the Python tools for config/persistent files.
36+
37+
Defaults to ~/.config/cfengine/, but can be overridden via the CFENGINE_DIR
38+
environment variable.
39+
"""
40+
override_dir = os.getenv("CFENGINE_DIR")
41+
42+
if override_dir:
43+
override_dir = os.path.normpath(override_dir)
44+
parent = os.path.dirname(override_dir)
45+
46+
if not os.path.exists(parent):
47+
raise UserError(
48+
"'{}' doesn't exist. Make sure this path is correct and exists.".format(
49+
parent
50+
)
51+
)
52+
53+
return path_append(override_dir, subdir)
54+
55+
return path_append("~/.config/cfengine/", subdir)
3156

3257

3358
def bin(component: str) -> str:

tests/unit/test_paths.py

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,28 @@
11
import os
2-
from cfengine_cli.paths import cfengine_dir, bin
32

3+
from cfengine_cli.paths import cfengine_config_dir, cfengine_cache_dir, bin
44

5-
def test_cfengine_dir():
6-
a = os.path.abspath(os.path.expanduser(cfengine_dir()))
7-
b = os.path.abspath(os.path.expanduser("~/.cfengine"))
5+
6+
def test_cfengine_cache_dir():
7+
a = os.path.abspath(os.path.expanduser(cfengine_cache_dir()))
8+
b = os.path.abspath(os.path.expanduser("~/.cache/cfengine"))
9+
10+
assert a == b
11+
12+
a = os.path.abspath(os.path.expanduser(cfengine_cache_dir("subdir")))
13+
b = os.path.abspath(os.path.expanduser("~/.cache/cfengine/subdir"))
14+
15+
assert a == b
16+
17+
18+
def test_cfengine_conf_dir():
19+
a = os.path.abspath(os.path.expanduser(cfengine_config_dir()))
20+
b = os.path.abspath(os.path.expanduser("~/.config/cfengine"))
821

922
assert a == b
1023

11-
a = os.path.abspath(os.path.expanduser(cfengine_dir("subdir")))
12-
b = os.path.abspath(os.path.expanduser("~/.cfengine/subdir"))
24+
a = os.path.abspath(os.path.expanduser(cfengine_config_dir("subdir")))
25+
b = os.path.abspath(os.path.expanduser("~/.config/cfengine/subdir"))
1326

1427
assert a == b
1528

0 commit comments

Comments
 (0)