···
Test with default directories:
3
-
$ export HOME=/tmp/xgd_test_home
3
+
$ export HOME=./test_home
$ unset XDG_CONFIG_HOME XDG_DATA_HOME XDG_CACHE_HOME XDG_STATE_HOME XDG_RUNTIME_DIR
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
$ ../example/xdg_example.exe
···
XDG directories for 'xdg_example':
13
-
config: <fs:/tmp/xgd_test_home/.config/xdg_example> [default]
14
-
data: <fs:/tmp/xgd_test_home/.local/share/xdg_example> [default]
15
-
cache: <fs:/tmp/xgd_test_home/.cache/xdg_example> [default]
16
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
13
+
config: <fs:./test_home/./test_home/.config/xdg_example> [default]
14
+
data: <fs:./test_home/./test_home/.local/share/xdg_example> [default]
15
+
cache: <fs:./test_home/./test_home/.cache/xdg_example> [default]
16
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
config_dirs: [<fs:/etc/xdg/xdg_example>]
···
$ unset XDG_CONFIG_HOME XDG_DATA_HOME XDG_CACHE_HOME XDG_STATE_HOME XDG_RUNTIME_DIR
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
$ ../example/xdg_example.exe \
32
-
> --config-dir /tmp/test-config \
33
-
> --data-dir /tmp/test-data \
34
-
> --cache-dir /tmp/test-cache \
35
-
> --state-dir /tmp/test-state \
36
-
> --runtime-dir /tmp/test-runtime
32
+
> --config-dir ./test-config \
33
+
> --data-dir ./test-data \
34
+
> --cache-dir ./test-cache \
35
+
> --state-dir ./test-state \
36
+
> --runtime-dir ./test-runtime
39
-
config_dir: /tmp/test-config [cmdline]
40
-
data_dir: /tmp/test-data [cmdline]
41
-
cache_dir: /tmp/test-cache [cmdline]
42
-
state_dir: /tmp/test-state [cmdline]
43
-
runtime_dir: /tmp/test-runtime [cmdline]
39
+
config_dir: ./test-config [cmdline]
40
+
data_dir: ./test-data [cmdline]
41
+
cache_dir: ./test-cache [cmdline]
42
+
state_dir: ./test-state [cmdline]
43
+
runtime_dir: ./test-runtime [cmdline]
XDG directories for 'xdg_example':
48
-
config: <fs:/tmp/test-config> [cmdline]
49
-
data: <fs:/tmp/test-data> [cmdline]
50
-
cache: <fs:/tmp/test-cache> [cmdline]
51
-
state: <fs:/tmp/test-state> [cmdline]
52
-
runtime: <fs:/tmp/test-runtime> [cmdline]
48
+
config: <fs:./test_home/./test-config> [cmdline]
49
+
data: <fs:./test_home/./test-data> [cmdline]
50
+
cache: <fs:./test_home/./test-cache> [cmdline]
51
+
state: <fs:./test_home/./test-state> [cmdline]
52
+
runtime: <fs:./test_home/./test-runtime> [cmdline]
config_dirs: [<fs:/etc/xdg/xdg_example>]
data_dirs: [<fs:/usr/local/share/xdg_example>; <fs:/usr/share/xdg_example>]
···
they cannot be overridden by user directories command-line options.
Test with environment variables (app-specific)
63
-
$ XDG_EXAMPLE_CONFIG_DIR=/tmp/env-config \
64
-
> XDG_EXAMPLE_DATA_DIR=/tmp/env-data \
65
-
> XDG_EXAMPLE_CACHE_DIR=/tmp/env-cache \
66
-
> XDG_EXAMPLE_STATE_DIR=/tmp/env-state \
67
-
> XDG_EXAMPLE_RUNTIME_DIR=/tmp/env-runtime \
63
+
$ XDG_EXAMPLE_CONFIG_DIR=./env-config \
64
+
> XDG_EXAMPLE_DATA_DIR=./env-data \
65
+
> XDG_EXAMPLE_CACHE_DIR=./env-cache \
66
+
> XDG_EXAMPLE_STATE_DIR=./env-state \
67
+
> XDG_EXAMPLE_RUNTIME_DIR=./env-runtime \
> ../example/xdg_example.exe
71
-
config_dir: /tmp/env-config [env(XDG_EXAMPLE_CONFIG_DIR)]
72
-
data_dir: /tmp/env-data [env(XDG_EXAMPLE_DATA_DIR)]
73
-
cache_dir: /tmp/env-cache [env(XDG_EXAMPLE_CACHE_DIR)]
74
-
state_dir: /tmp/env-state [env(XDG_EXAMPLE_STATE_DIR)]
75
-
runtime_dir: /tmp/env-runtime [env(XDG_EXAMPLE_RUNTIME_DIR)]
71
+
config_dir: ./env-config [env(XDG_EXAMPLE_CONFIG_DIR)]
72
+
data_dir: ./env-data [env(XDG_EXAMPLE_DATA_DIR)]
73
+
cache_dir: ./env-cache [env(XDG_EXAMPLE_CACHE_DIR)]
74
+
state_dir: ./env-state [env(XDG_EXAMPLE_STATE_DIR)]
75
+
runtime_dir: ./env-runtime [env(XDG_EXAMPLE_RUNTIME_DIR)]
XDG directories for 'xdg_example':
80
-
config: <fs:/tmp/env-config> [env(XDG_EXAMPLE_CONFIG_DIR)]
81
-
data: <fs:/tmp/env-data> [env(XDG_EXAMPLE_DATA_DIR)]
82
-
cache: <fs:/tmp/env-cache> [env(XDG_EXAMPLE_CACHE_DIR)]
83
-
state: <fs:/tmp/env-state> [env(XDG_EXAMPLE_STATE_DIR)]
84
-
runtime: <fs:/tmp/env-runtime> [env(XDG_EXAMPLE_RUNTIME_DIR)]
80
+
config: <fs:./test_home/./env-config> [env(XDG_EXAMPLE_CONFIG_DIR)]
81
+
data: <fs:./test_home/./env-data> [env(XDG_EXAMPLE_DATA_DIR)]
82
+
cache: <fs:./test_home/./env-cache> [env(XDG_EXAMPLE_CACHE_DIR)]
83
+
state: <fs:./test_home/./env-state> [env(XDG_EXAMPLE_STATE_DIR)]
84
+
runtime: <fs:./test_home/./env-runtime> [env(XDG_EXAMPLE_RUNTIME_DIR)]
config_dirs: [<fs:/etc/xdg/xdg_example>]
data_dirs: [<fs:/usr/local/share/xdg_example>; <fs:/usr/share/xdg_example>]
···
Test with standard XDG environment variables:
96
-
$ XDG_CONFIG_HOME=/tmp/xdg-config \
97
-
> XDG_DATA_HOME=/tmp/xdg-data \
98
-
> XDG_CACHE_HOME=/tmp/xdg-cache \
99
-
> XDG_STATE_HOME=/tmp/xdg-state \
100
-
> XDG_RUNTIME_DIR=/tmp/xdg-runtime \
96
+
$ XDG_CONFIG_HOME=/tmp/xdge/xdg-config \
97
+
> XDG_DATA_HOME=/tmp/xdge/xdg-data \
98
+
> XDG_CACHE_HOME=/tmp/xdge/xdg-cache \
99
+
> XDG_STATE_HOME=/tmp/xdge/xdg-state \
100
+
> XDG_RUNTIME_DIR=/tmp/xdge/xdg-runtime \
> ../example/xdg_example.exe
104
-
config_dir: /tmp/xdg-config [env(XDG_CONFIG_HOME)]
105
-
data_dir: /tmp/xdg-data [env(XDG_DATA_HOME)]
106
-
cache_dir: /tmp/xdg-cache [env(XDG_CACHE_HOME)]
107
-
state_dir: /tmp/xdg-state [env(XDG_STATE_HOME)]
108
-
runtime_dir: /tmp/xdg-runtime [env(XDG_RUNTIME_DIR)]
104
+
config_dir: /tmp/xdge/xdg-config [env(XDG_CONFIG_HOME)]
105
+
data_dir: /tmp/xdge/xdg-data [env(XDG_DATA_HOME)]
106
+
cache_dir: /tmp/xdge/xdg-cache [env(XDG_CACHE_HOME)]
107
+
state_dir: /tmp/xdge/xdg-state [env(XDG_STATE_HOME)]
108
+
runtime_dir: /tmp/xdge/xdg-runtime [env(XDG_RUNTIME_DIR)]
XDG directories for 'xdg_example':
113
-
config: <fs:/tmp/xdg-config> [env(XDG_CONFIG_HOME)]
114
-
data: <fs:/tmp/xdg-data> [env(XDG_DATA_HOME)]
115
-
cache: <fs:/tmp/xdg-cache> [env(XDG_CACHE_HOME)]
116
-
state: <fs:/tmp/xdg-state> [env(XDG_STATE_HOME)]
117
-
runtime: <fs:/tmp/xdg-runtime> [env(XDG_RUNTIME_DIR)]
113
+
config: <fs:/tmp/xdge/xdg-config> [env(XDG_CONFIG_HOME)]
114
+
data: <fs:/tmp/xdge/xdg-data> [env(XDG_DATA_HOME)]
115
+
cache: <fs:/tmp/xdge/xdg-cache> [env(XDG_CACHE_HOME)]
116
+
state: <fs:/tmp/xdge/xdg-state> [env(XDG_STATE_HOME)]
117
+
runtime: <fs:/tmp/xdge/xdg-runtime> [env(XDG_RUNTIME_DIR)]
config_dirs: [<fs:/etc/xdg/xdg_example>]
data_dirs: [<fs:/usr/local/share/xdg_example>; <fs:/usr/share/xdg_example>]
···
Test command line overrides environment variables:
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
130
-
$ XDG_EXAMPLE_CONFIG_DIR=/tmp/env-config \
131
-
> ../example/xdg_example.exe --config-dir /tmp/cli-config
130
+
$ XDG_EXAMPLE_CONFIG_DIR=./env-config \
131
+
> ../example/xdg_example.exe --config-dir ./cli-config
134
-
config_dir: /tmp/cli-config [cmdline]
134
+
config_dir: ./cli-config [cmdline]
XDG directories for 'xdg_example':
139
-
config: <fs:/tmp/cli-config> [cmdline]
140
-
data: <fs:/tmp/xgd_test_home/.local/share/xdg_example> [default]
141
-
cache: <fs:/tmp/xgd_test_home/.cache/xdg_example> [default]
142
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
139
+
config: <fs:./test_home/./cli-config> [cmdline]
140
+
data: <fs:./test_home/./test_home/.local/share/xdg_example> [default]
141
+
cache: <fs:./test_home/./test_home/.cache/xdg_example> [default]
142
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
config_dirs: [<fs:/etc/xdg/xdg_example>]
···
Test mixed environment variable precedence (app-specific overrides XDG standard):
156
-
$ export HOME=/tmp/xgd_test_home
156
+
$ export HOME=./test_home
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
158
-
$ XDG_CONFIG_HOME=/tmp/xdg-config \
159
-
> XDG_EXAMPLE_CONFIG_DIR=/tmp/app-config \
160
-
> XDG_DATA_HOME=/tmp/xdg-data \
161
-
> XDG_EXAMPLE_DATA_DIR=/tmp/app-data \
158
+
$ XDG_CONFIG_HOME=/tmp/xdge/xdg-config \
159
+
> XDG_EXAMPLE_CONFIG_DIR=./app-config \
160
+
> XDG_DATA_HOME=/tmp/xdge/xdg-data \
161
+
> XDG_EXAMPLE_DATA_DIR=./app-data \
> ../example/xdg_example.exe
165
-
config_dir: /tmp/app-config [env(XDG_EXAMPLE_CONFIG_DIR)]
166
-
data_dir: /tmp/app-data [env(XDG_EXAMPLE_DATA_DIR)]
165
+
config_dir: ./app-config [env(XDG_EXAMPLE_CONFIG_DIR)]
166
+
data_dir: ./app-data [env(XDG_EXAMPLE_DATA_DIR)]
XDG directories for 'xdg_example':
171
-
config: <fs:/tmp/app-config> [env(XDG_EXAMPLE_CONFIG_DIR)]
172
-
data: <fs:/tmp/app-data> [env(XDG_EXAMPLE_DATA_DIR)]
173
-
cache: <fs:/tmp/xgd_test_home/.cache/xdg_example> [default]
174
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
171
+
config: <fs:./test_home/./app-config> [env(XDG_EXAMPLE_CONFIG_DIR)]
172
+
data: <fs:./test_home/./app-data> [env(XDG_EXAMPLE_DATA_DIR)]
173
+
cache: <fs:./test_home/./test_home/.cache/xdg_example> [default]
174
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
config_dirs: [<fs:/etc/xdg/xdg_example>]
···
Test partial environment variable override:
187
-
$ export HOME=/tmp/xgd_test_home
187
+
$ export HOME=./test_home
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
189
-
$ XDG_EXAMPLE_CONFIG_DIR=/tmp/app-config \
190
-
> XDG_DATA_HOME=/tmp/xdg-data \
191
-
> XDG_CACHE_HOME=/tmp/xdg-cache \
189
+
$ XDG_EXAMPLE_CONFIG_DIR=./app-config \
190
+
> XDG_DATA_HOME=/tmp/xdge/xdg-data \
191
+
> XDG_CACHE_HOME=/tmp/xdge/xdg-cache \
> ../example/xdg_example.exe
195
-
config_dir: /tmp/app-config [env(XDG_EXAMPLE_CONFIG_DIR)]
196
-
data_dir: /tmp/xdg-data [env(XDG_DATA_HOME)]
197
-
cache_dir: /tmp/xdg-cache [env(XDG_CACHE_HOME)]
195
+
config_dir: ./app-config [env(XDG_EXAMPLE_CONFIG_DIR)]
196
+
data_dir: /tmp/xdge/xdg-data [env(XDG_DATA_HOME)]
197
+
cache_dir: /tmp/xdge/xdg-cache [env(XDG_CACHE_HOME)]
XDG directories for 'xdg_example':
202
-
config: <fs:/tmp/app-config> [env(XDG_EXAMPLE_CONFIG_DIR)]
203
-
data: <fs:/tmp/xdg-data> [env(XDG_DATA_HOME)]
204
-
cache: <fs:/tmp/xdg-cache> [env(XDG_CACHE_HOME)]
205
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
202
+
config: <fs:./test_home/./app-config> [env(XDG_EXAMPLE_CONFIG_DIR)]
203
+
data: <fs:/tmp/xdge/xdg-data> [env(XDG_DATA_HOME)]
204
+
cache: <fs:/tmp/xdge/xdg-cache> [env(XDG_CACHE_HOME)]
205
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
config_dirs: [<fs:/etc/xdg/xdg_example>]
···
Test command line overrides mixed environment variables:
218
-
$ export HOME=/tmp/xgd_test_home
218
+
$ export HOME=./test_home
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
220
-
$ XDG_CONFIG_HOME=/tmp/xdg-config \
221
-
> XDG_EXAMPLE_CONFIG_DIR=/tmp/app-config \
222
-
> ../example/xdg_example.exe --config-dir /tmp/cli-config
220
+
$ XDG_CONFIG_HOME=/tmp/xdge/xdg-config \
221
+
> XDG_EXAMPLE_CONFIG_DIR=./app-config \
222
+
> ../example/xdg_example.exe --config-dir ./cli-config
225
-
config_dir: /tmp/cli-config [cmdline]
225
+
config_dir: ./cli-config [cmdline]
XDG directories for 'xdg_example':
230
-
config: <fs:/tmp/cli-config> [cmdline]
231
-
data: <fs:/tmp/xgd_test_home/.local/share/xdg_example> [default]
232
-
cache: <fs:/tmp/xgd_test_home/.cache/xdg_example> [default]
233
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
230
+
config: <fs:./test_home/./cli-config> [cmdline]
231
+
data: <fs:./test_home/./test_home/.local/share/xdg_example> [default]
232
+
cache: <fs:./test_home/./test_home/.cache/xdg_example> [default]
233
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
config_dirs: [<fs:/etc/xdg/xdg_example>]
···
Test empty environment variable handling:
246
-
$ export HOME=/tmp/xgd_test_home
246
+
$ export HOME=./test_home
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
$ XDG_EXAMPLE_CONFIG_DIR="" \
249
-
> XDG_CONFIG_HOME=/tmp/xdg-config \
249
+
> XDG_CONFIG_HOME=/tmp/xdge/xdg-config \
> ../example/xdg_example.exe
253
-
config_dir: /tmp/xdg-config [env(XDG_CONFIG_HOME)]
253
+
config_dir: /tmp/xdge/xdg-config [env(XDG_CONFIG_HOME)]
XDG directories for 'xdg_example':
258
-
config: <fs:/tmp/xdg-config> [env(XDG_CONFIG_HOME)]
259
-
data: <fs:/tmp/xgd_test_home/.local/share/xdg_example> [default]
260
-
cache: <fs:/tmp/xgd_test_home/.cache/xdg_example> [default]
261
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
258
+
config: <fs:/tmp/xdge/xdg-config> [env(XDG_CONFIG_HOME)]
259
+
data: <fs:./test_home/./test_home/.local/share/xdg_example> [default]
260
+
cache: <fs:./test_home/./test_home/.cache/xdg_example> [default]
261
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
config_dirs: [<fs:/etc/xdg/xdg_example>]
···
Test system directory environment variables:
276
-
$ export HOME=/tmp/xgd_test_home
276
+
$ export HOME=./test_home
$ unset XDG_CONFIG_HOME XDG_DATA_HOME XDG_CACHE_HOME XDG_STATE_HOME XDG_RUNTIME_DIR
278
-
$ XDG_CONFIG_DIRS=/tmp/sys1:/tmp/sys2 \
279
-
> XDG_DATA_DIRS=/tmp/data1:/tmp/data2 \
278
+
$ XDG_CONFIG_DIRS=/tmp/xdge/sys1:/tmp/xdge/sys2 \
279
+
> XDG_DATA_DIRS=/tmp/xdge/data1:/tmp/xdge/data2 \
> ../example/xdg_example.exe
···
XDG directories for 'xdg_example':
287
-
config: <fs:/tmp/xgd_test_home/.config/xdg_example> [default]
288
-
data: <fs:/tmp/xgd_test_home/.local/share/xdg_example> [default]
289
-
cache: <fs:/tmp/xgd_test_home/.cache/xdg_example> [default]
290
-
state: <fs:/tmp/xgd_test_home/.local/state/xdg_example> [default]
287
+
config: <fs:./test_home/./test_home/.config/xdg_example> [default]
288
+
data: <fs:./test_home/./test_home/.local/share/xdg_example> [default]
289
+
cache: <fs:./test_home/./test_home/.cache/xdg_example> [default]
290
+
state: <fs:./test_home/./test_home/.local/state/xdg_example> [default]
runtime: <none> [default]
293
-
config_dirs: [<fs:/tmp/sys1/xdg_example>; <fs:/tmp/sys2/xdg_example>]
294
-
data_dirs: [<fs:/tmp/data1/xdg_example>; <fs:/tmp/data2/xdg_example>]
293
+
config_dirs: [<fs:/tmp/xdge/sys1/xdg_example>;
294
+
<fs:/tmp/xdge/sys2/xdg_example>]
295
+
data_dirs: [<fs:/tmp/xdge/data1/xdg_example>;
296
+
<fs:/tmp/xdge/data2/xdg_example>]
This test is correct: XDG_CONFIG_DIRS and XDG_DATA_DIRS environment variables
override the default system directories. The colon-separated paths are parsed
···
Test _path functions do not create directories but can access files within them:
329
-
$ export HOME=/tmp/xdg_path_test
330
-
$ mkdir -p /tmp/xdg_path_test
331
+
$ export HOME=/tmp/xdge/xdg_path_test
332
+
$ mkdir -p /tmp/xdge/xdg_path_test
$ unset XDG_CONFIG_HOME XDG_DATA_HOME XDG_CACHE_HOME XDG_STATE_HOME XDG_RUNTIME_DIR
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
Create config subdirectory manually and write a test file:
334
-
$ mkdir -p "/tmp/xdg_path_test/.config/path_test/profiles"
335
-
$ echo "test profile content" > "/tmp/xdg_path_test/.config/path_test/profiles/default.json"
336
+
$ mkdir -p "/tmp/xdge/xdg_path_test/.config/path_test/profiles"
337
+
$ echo "test profile content" > "/tmp/xdge/xdg_path_test/.config/path_test/profiles/default.json"
Create data subdirectory manually and write a test file:
337
-
$ mkdir -p "/tmp/xdg_path_test/.local/share/path_test/databases"
338
-
$ echo "test database content" > "/tmp/xdg_path_test/.local/share/path_test/databases/main.db"
339
+
$ mkdir -p "/tmp/xdge/xdg_path_test/.local/share/path_test/databases"
340
+
$ echo "test database content" > "/tmp/xdge/xdg_path_test/.local/share/path_test/databases/main.db"
Create cache subdirectory manually and write a test file:
340
-
$ mkdir -p "/tmp/xdg_path_test/.cache/path_test/thumbnails"
341
-
$ echo "test cache content" > "/tmp/xdg_path_test/.cache/path_test/thumbnails/thumb1.png"
342
+
$ mkdir -p "/tmp/xdge/xdg_path_test/.cache/path_test/thumbnails"
343
+
$ echo "test cache content" > "/tmp/xdge/xdg_path_test/.cache/path_test/thumbnails/thumb1.png"
Create state subdirectory manually and write a test file:
343
-
$ mkdir -p "/tmp/xdg_path_test/.local/state/path_test/logs"
344
-
$ echo "test log content" > "/tmp/xdg_path_test/.local/state/path_test/logs/app.log"
345
+
$ mkdir -p "/tmp/xdge/xdg_path_test/.local/state/path_test/logs"
346
+
$ echo "test log content" > "/tmp/xdge/xdg_path_test/.local/state/path_test/logs/app.log"
Now test that we can read the files through the XDG _path functions:
···
Test path resolution with --show-paths:
Test with a preset HOME to verify correct path resolution:
359
-
$ export HOME=/home/testuser
361
+
$ export HOME=./home_testuser
$ unset XDG_CONFIG_HOME XDG_DATA_HOME XDG_CACHE_HOME XDG_STATE_HOME XDG_RUNTIME_DIR
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
$ ../example/xdg_example.exe --show-paths
363
-
config_dir: /home/testuser/.config/xdg_example
364
-
data_dir: /home/testuser/.local/share/xdg_example
365
-
cache_dir: /home/testuser/.cache/xdg_example
366
-
state_dir: /home/testuser/.local/state/xdg_example
365
+
config_dir: ./home_testuser/./home_testuser/.config/xdg_example
366
+
data_dir: ./home_testuser/./home_testuser/.local/share/xdg_example
367
+
cache_dir: ./home_testuser/./home_testuser/.cache/xdg_example
368
+
state_dir: ./home_testuser/./home_testuser/.local/state/xdg_example
config_dirs: /etc/xdg/xdg_example
data_dirs: /usr/local/share/xdg_example:/usr/share/xdg_example
Test with environment variables set:
372
-
$ export HOME=/home/testuser
373
-
$ export XDG_CONFIG_HOME=/custom/config
374
-
$ export XDG_DATA_HOME=/custom/data
375
-
$ export XDG_CACHE_HOME=/custom/cache
376
-
$ export XDG_STATE_HOME=/custom/state
377
-
$ export XDG_CONFIG_DIRS=/system/config1:/system/config2
378
-
$ export XDG_DATA_DIRS=/system/data1:/system/data2
374
+
$ export HOME=./home_testuser
375
+
$ export XDG_CONFIG_HOME=/tmp/xdge/config
376
+
$ export XDG_DATA_HOME=/tmp/xdge/data
377
+
$ export XDG_CACHE_HOME=/tmp/xdge/cache
378
+
$ export XDG_STATE_HOME=/tmp/xdge/state
379
+
$ export XDG_CONFIG_DIRS=/tmp/xdge/config1:/tmp/xdge/config2
380
+
$ export XDG_DATA_DIRS=/tmp/xdge/data1:/tmp/xdge/data2
$ ../example/xdg_example.exe --show-paths
380
-
config_dir: /custom/config/xdg_example
381
-
data_dir: /custom/data/xdg_example
382
-
cache_dir: /custom/cache/xdg_example
383
-
state_dir: /custom/state/xdg_example
382
+
config_dir: /tmp/xdge/config
383
+
data_dir: /tmp/xdge/data
384
+
cache_dir: /tmp/xdge/cache
385
+
state_dir: /tmp/xdge/state
385
-
config_dirs: /system/config1/xdg_example:/system/config2/xdg_example
386
-
data_dirs: /system/data1/xdg_example:/system/data2/xdg_example
387
+
config_dirs: /tmp/xdge/config1/xdg_example:/tmp/xdge/config2/xdg_example
388
+
data_dirs: /tmp/xdge/data1/xdg_example:/tmp/xdge/data2/xdg_example
Test with command-line overrides:
389
-
$ export HOME=/home/testuser
391
+
$ export HOME=./home_testuser
$ unset XDG_CONFIG_HOME XDG_DATA_HOME XDG_CACHE_HOME XDG_STATE_HOME XDG_RUNTIME_DIR
$ unset XDG_CONFIG_DIRS XDG_DATA_DIRS
392
-
$ ../example/xdg_example.exe --show-paths --config-dir /override/config --data-dir /override/data
393
-
config_dir: /override/config
394
-
data_dir: /override/data
395
-
cache_dir: /home/testuser/.cache/xdg_example
396
-
state_dir: /home/testuser/.local/state/xdg_example
394
+
$ ../example/xdg_example.exe --show-paths --config-dir ./override/config --data-dir ./override/data
395
+
config_dir: ./home_testuser/./override/config
396
+
data_dir: ./home_testuser/./override/data
397
+
cache_dir: ./home_testuser/./home_testuser/.cache/xdg_example
398
+
state_dir: ./home_testuser/./home_testuser/.local/state/xdg_example
config_dirs: /etc/xdg/xdg_example
data_dirs: /usr/local/share/xdg_example:/usr/share/xdg_example