summaryrefslogtreecommitdiff
path: root/caddytest/integration/caddyfile_adapt/map_with_raw_types.txt
blob: 54b2b60c85bae1ca3023dd24c427383c005a1e0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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
						}
					]
				}
			}
		}
	}
}