Skip to content

Commit b13a23c

Browse files
authored
Merge pull request #1865 from itowlson/templates-redirect-make-it-newable
Make `redirect` template newable
2 parents 78e0f7f + 8269127 commit b13a23c

File tree

7 files changed

+50
-8
lines changed

7 files changed

+50
-8
lines changed

crates/templates/src/manager.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,18 +1033,23 @@ mod tests {
10331033
let temp_dir = tempdir().unwrap();
10341034
let store = TemplateStore::new(temp_dir.path());
10351035
let manager = TemplateManager { store };
1036-
let source = TemplateSource::File(project_root());
1036+
let source1 = TemplateSource::File(test_data_root());
1037+
let source2 = TemplateSource::File(project_root());
10371038

10381039
manager
1039-
.install(&source, &InstallOptions::default(), &DiscardingReporter)
1040+
.install(&source1, &InstallOptions::default(), &DiscardingReporter)
1041+
.await
1042+
.unwrap();
1043+
manager
1044+
.install(&source2, &InstallOptions::default(), &DiscardingReporter)
10401045
.await
10411046
.unwrap();
10421047

10431048
let dummy_dir = temp_dir.path().join("dummy");
10441049
let manifest_path = dummy_dir.join("ignored_spin.toml");
10451050
let add_component = TemplateVariantInfo::AddComponent { manifest_path };
10461051

1047-
let redirect = manager.get("redirect").unwrap().unwrap();
1052+
let redirect = manager.get("add-only-redirect").unwrap().unwrap();
10481053
assert!(!redirect.supports_variant(&TemplateVariantInfo::NewApplication));
10491054
assert!(redirect.supports_variant(&add_component));
10501055

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[[component]]
2+
source = { url = "https://github.com/fermyon/spin-redirect/releases/download/v0.1.0/redirect.wasm", digest = "sha256:8bee959843f28fef2a02164f5840477db81d350877e1c22cb524f41363468e52" }
3+
id = "{{ project-name | kebab_case }}"
4+
environment = { DESTINATION = "{{ redirect-to }}" }
5+
[component.trigger]
6+
route = "{{ redirect-from }}"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
manifest_version = "1"
2+
id = "add-only-redirect"
3+
description = "Redirects a HTTP route"
4+
trigger_type = "http"
5+
tags = ["redirect"]
6+
7+
[new_application]
8+
supported = false
9+
10+
[add_component]
11+
[add_component.snippets]
12+
component = "component.txt"
13+
14+
[parameters]
15+
redirect-from = { type = "string", prompt = "Redirect from", pattern = "^/\\S*$" }
16+
redirect-to = { type = "string", prompt = "Redirect to", pattern = "^/\\S*$" }
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.spin/
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
spin_manifest_version = "1"
2+
authors = ["{{authors}}"]
3+
description = "{{project-description}}"
4+
name = "{{project-name}}"
5+
trigger = { type = "http", base = "{{http-base}}" }
6+
version = "0.1.0"
7+
8+
[[component]]
9+
source = { url = "https://github.com/fermyon/spin-redirect/releases/download/v0.1.0/redirect.wasm", digest = "sha256:8bee959843f28fef2a02164f5840477db81d350877e1c22cb524f41363468e52" }
10+
id = "{{ project-name | kebab_case }}"
11+
environment = { DESTINATION = "{{ redirect-to }}" }
12+
[component.trigger]
13+
route = "{{ redirect-from }}"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[[component]]
22
source = { url = "https://github.com/fermyon/spin-redirect/releases/download/v0.1.0/redirect.wasm", digest = "sha256:8bee959843f28fef2a02164f5840477db81d350877e1c22cb524f41363468e52" }
3-
id = "{{ project-name }}"
3+
id = "{{ project-name | kebab_case }}"
44
environment = { DESTINATION = "{{ redirect-to }}" }
55
[component.trigger]
66
route = "{{ redirect-from }}"

templates/redirect/metadata/spin-template.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ description = "Redirects a HTTP route"
44
trigger_type = "http"
55
tags = ["redirect"]
66

7-
[new_application]
8-
supported = false
9-
107
[add_component]
8+
skip_files = ["spin.toml"]
9+
skip_parameters = ["project-description", "http-base"]
1110
[add_component.snippets]
1211
component = "component.txt"
1312

1413
[parameters]
14+
project-description = { type = "string", prompt = "Description", default = "" }
15+
http-base = { type = "string", prompt = "HTTP base", default = "/", pattern = "^/\\S*$" }
1516
redirect-from = { type = "string", prompt = "Redirect from", pattern = "^/\\S*$" }
16-
redirect-to = { type = "string", prompt = "Redirect to", pattern = "^/\\S*$" }
17+
redirect-to = { type = "string", prompt = "Redirect to" }

0 commit comments

Comments
 (0)