From 79cbe7bfd06565d0e7ab0717119f78960ed54c08 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Tue, 22 Mar 2022 10:47:21 -0600 Subject: httpcaddyfile: Add 'vars' directive See discussion in #4650 --- .../map_and_vars_with_raw_types.txt | 126 +++++++++++++++++++++ .../caddyfile_adapt/map_with_raw_types.txt | 107 ----------------- 2 files changed, 126 insertions(+), 107 deletions(-) create mode 100644 caddytest/integration/caddyfile_adapt/map_and_vars_with_raw_types.txt delete mode 100644 caddytest/integration/caddyfile_adapt/map_with_raw_types.txt (limited to 'caddytest') diff --git a/caddytest/integration/caddyfile_adapt/map_and_vars_with_raw_types.txt b/caddytest/integration/caddyfile_adapt/map_and_vars_with_raw_types.txt new file mode 100644 index 0000000..af9faf4 --- /dev/null +++ b/caddytest/integration/caddyfile_adapt/map_and_vars_with_raw_types.txt @@ -0,0 +1,126 @@ +example.com + +map {host} {my_placeholder} {magic_number} { + # Should output boolean "true" and an integer + example.com true 3 + + # Should output a string and null + foo.example.com "string value" + + # Should output two strings (quoted int) + (.*)\.example.com "${1} subdomain" "5" + + # Should output null and a string (quoted int) + ~.*\.net$ - `7` + + # Should output a float and the string "false" + ~.*\.xyz$ 123.456 "false" + + # Should output two strings, second being escaped quote + default "unknown domain" \""" +} + +vars foo bar +vars { + abc true + def 1 + ghi 2.3 + jkl "mn op" +} +---------- +{ + "apps": { + "http": { + "servers": { + "srv0": { + "listen": [ + ":443" + ], + "routes": [ + { + "match": [ + { + "host": [ + "example.com" + ] + } + ], + "handle": [ + { + "handler": "subroute", + "routes": [ + { + "handle": [ + { + "defaults": [ + "unknown domain", + "\"" + ], + "destinations": [ + "{my_placeholder}", + "{magic_number}" + ], + "handler": "map", + "mappings": [ + { + "input": "example.com", + "outputs": [ + true, + 3 + ] + }, + { + "input": "foo.example.com", + "outputs": [ + "string value", + null + ] + }, + { + "input": "(.*)\\.example.com", + "outputs": [ + "${1} subdomain", + "5" + ] + }, + { + "input_regexp": ".*\\.net$", + "outputs": [ + null, + "7" + ] + }, + { + "input_regexp": ".*\\.xyz$", + "outputs": [ + 123.456, + "false" + ] + } + ], + "source": "{http.request.host}" + }, + { + "foo": "bar", + "handler": "vars" + }, + { + "abc": true, + "def": 1, + "ghi": 2.3, + "handler": "vars", + "jkl": "mn op" + } + ] + } + ] + } + ], + "terminal": true + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/caddytest/integration/caddyfile_adapt/map_with_raw_types.txt b/caddytest/integration/caddyfile_adapt/map_with_raw_types.txt deleted file mode 100644 index 54b2b60..0000000 --- a/caddytest/integration/caddyfile_adapt/map_with_raw_types.txt +++ /dev/null @@ -1,107 +0,0 @@ -example.com - -map {host} {my_placeholder} {magic_number} { - # Should output boolean "true" and an integer - example.com true 3 - - # Should output a string and null - foo.example.com "string value" - - # Should output two strings (quoted int) - (.*)\.example.com "${1} subdomain" "5" - - # Should output null and a string (quoted int) - ~.*\.net$ - `7` - - # Should output a float and the string "false" - ~.*\.xyz$ 123.456 "false" - - # Should output two strings, second being escaped quote - default "unknown domain" \""" -} ----------- -{ - "apps": { - "http": { - "servers": { - "srv0": { - "listen": [ - ":443" - ], - "routes": [ - { - "match": [ - { - "host": [ - "example.com" - ] - } - ], - "handle": [ - { - "handler": "subroute", - "routes": [ - { - "handle": [ - { - "defaults": [ - "unknown domain", - "\"" - ], - "destinations": [ - "{my_placeholder}", - "{magic_number}" - ], - "handler": "map", - "mappings": [ - { - "input": "example.com", - "outputs": [ - true, - 3 - ] - }, - { - "input": "foo.example.com", - "outputs": [ - "string value", - null - ] - }, - { - "input": "(.*)\\.example.com", - "outputs": [ - "${1} subdomain", - "5" - ] - }, - { - "input_regexp": ".*\\.net$", - "outputs": [ - null, - "7" - ] - }, - { - "input_regexp": ".*\\.xyz$", - "outputs": [ - 123.456, - "false" - ] - } - ], - "source": "{http.request.host}" - } - ] - } - ] - } - ], - "terminal": true - } - ] - } - } - } - } -} \ No newline at end of file -- cgit v1.2.3