mirror of
https://github.com/TheLocehiliosan/yadm
synced 2025-06-04 08:33:57 +00:00
Add yadm.filename variable to default template processor
Similar to yadm.source but reflects the current file also in included files (#520).
This commit is contained in:
parent
2ac90b004c
commit
0e0172769d
@ -141,7 +141,7 @@ end of template
|
|||||||
|
|
||||||
INCLUDE_BASIC = "basic\n"
|
INCLUDE_BASIC = "basic\n"
|
||||||
INCLUDE_VARIABLES = """\
|
INCLUDE_VARIABLES = """\
|
||||||
included <{{ yadm.class }}> file
|
included <{{ yadm.class }}> file ({{yadm.filename}})
|
||||||
|
|
||||||
empty line above
|
empty line above
|
||||||
"""
|
"""
|
||||||
@ -151,8 +151,8 @@ TEMPLATE_INCLUDE = """\
|
|||||||
The first line
|
The first line
|
||||||
{% include empty %}
|
{% include empty %}
|
||||||
An empty file removes the line above
|
An empty file removes the line above
|
||||||
{%include basic%}
|
{%include ./basic%}
|
||||||
{% include "./variables.{{ yadm.os }}" %}
|
{% include "variables.{{ yadm.os }}" %}
|
||||||
{% include dir/nested %}
|
{% include dir/nested %}
|
||||||
Include basic again:
|
Include basic again:
|
||||||
{% include basic %}
|
{% include basic %}
|
||||||
@ -161,7 +161,7 @@ EXPECTED_INCLUDE = f"""\
|
|||||||
The first line
|
The first line
|
||||||
An empty file removes the line above
|
An empty file removes the line above
|
||||||
basic
|
basic
|
||||||
included <{LOCAL_CLASS}> file
|
included <{LOCAL_CLASS}> file (VARIABLES_FILENAME)
|
||||||
|
|
||||||
empty line above
|
empty line above
|
||||||
no newline at the end
|
no newline at the end
|
||||||
@ -280,6 +280,8 @@ def test_include(runner, yadm, tmpdir):
|
|||||||
input_file.chmod(FILE_MODE)
|
input_file.chmod(FILE_MODE)
|
||||||
output_file = tmpdir.join("output")
|
output_file = tmpdir.join("output")
|
||||||
|
|
||||||
|
expected = EXPECTED_INCLUDE.replace("VARIABLES_FILENAME", str(variables_file))
|
||||||
|
|
||||||
script = f"""
|
script = f"""
|
||||||
YADM_TEST=1 source {yadm}
|
YADM_TEST=1 source {yadm}
|
||||||
set_awk
|
set_awk
|
||||||
@ -290,7 +292,7 @@ def test_include(runner, yadm, tmpdir):
|
|||||||
run = runner(command=["bash"], inp=script)
|
run = runner(command=["bash"], inp=script)
|
||||||
assert run.success
|
assert run.success
|
||||||
assert run.err == ""
|
assert run.err == ""
|
||||||
assert output_file.read() == EXPECTED_INCLUDE
|
assert output_file.read() == expected
|
||||||
assert os.stat(output_file).st_mode == os.stat(input_file).st_mode
|
assert os.stat(output_file).st_mode == os.stat(input_file).st_mode
|
||||||
|
|
||||||
|
|
||||||
|
6
yadm
6
yadm
@ -379,7 +379,7 @@ BEGIN {
|
|||||||
yadm["user"] = user
|
yadm["user"] = user
|
||||||
yadm["distro"] = distro
|
yadm["distro"] = distro
|
||||||
yadm["distro_family"] = distro_family
|
yadm["distro_family"] = distro_family
|
||||||
yadm["source"] = source
|
yadm["source"] = ARGV[1]
|
||||||
|
|
||||||
VARIABLE = "(env|yadm)\\.[a-zA-Z0-9_]+"
|
VARIABLE = "(env|yadm)\\.[a-zA-Z0-9_]+"
|
||||||
|
|
||||||
@ -469,6 +469,9 @@ function replace_vars(input) {
|
|||||||
if (fields[1] == "env") {
|
if (fields[1] == "env") {
|
||||||
output = output ENVIRON[fields[2]]
|
output = output ENVIRON[fields[2]]
|
||||||
}
|
}
|
||||||
|
else if (fields[2] == "filename") {
|
||||||
|
output = output filename[current]
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
output = output yadm[fields[2]]
|
output = output yadm[fields[2]]
|
||||||
}
|
}
|
||||||
@ -485,7 +488,6 @@ EOF
|
|||||||
-v user="$local_user" \
|
-v user="$local_user" \
|
||||||
-v distro="$local_distro" \
|
-v distro="$local_distro" \
|
||||||
-v distro_family="$local_distro_family" \
|
-v distro_family="$local_distro_family" \
|
||||||
-v source="$input" \
|
|
||||||
-v source_dir="$(builtin_dirname "$input")" \
|
-v source_dir="$(builtin_dirname "$input")" \
|
||||||
"$awk_pgm" \
|
"$awk_pgm" \
|
||||||
"$input" "${local_classes[@]}"
|
"$input" "${local_classes[@]}"
|
||||||
|
1
yadm.1
1
yadm.1
@ -705,6 +705,7 @@ During processing, the following variables are available in the template:
|
|||||||
yadm.classes YADM_CLASSES All classes
|
yadm.classes YADM_CLASSES All classes
|
||||||
yadm.distro YADM_DISTRO lsb_release \-si
|
yadm.distro YADM_DISTRO lsb_release \-si
|
||||||
yadm.distro_family YADM_DISTRO_FAMILY ID_LIKE from /etc/os-release
|
yadm.distro_family YADM_DISTRO_FAMILY ID_LIKE from /etc/os-release
|
||||||
|
yadm.filename Filename for the current file
|
||||||
yadm.hostname YADM_HOSTNAME uname \-n (without domain)
|
yadm.hostname YADM_HOSTNAME uname \-n (without domain)
|
||||||
yadm.os YADM_OS uname \-s
|
yadm.os YADM_OS uname \-s
|
||||||
yadm.source YADM_SOURCE Template filename
|
yadm.source YADM_SOURCE Template filename
|
||||||
|
Loading…
Reference in New Issue
Block a user