From fad87c6b1edb202a26252027c1e95618fdae668f Mon Sep 17 00:00:00 2001 From: user Date: Wed, 14 Aug 2019 19:42:13 +0200 Subject: [PATCH] First ideas --- .gitignore | 1 + README.md | 5 +++++ examples/.mytilde.1.json | 3 +++ examples/.mytilde.2.json | 15 +++++++++++++++ mytilde.rs | 29 +++++++++++++++++++++++++++++ 5 files changed, 53 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 examples/.mytilde.1.json create mode 100644 examples/.mytilde.2.json create mode 100644 mytilde.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..78fd378 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/*.sw* diff --git a/README.md b/README.md new file mode 100644 index 0000000..0ec4898 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# mytilde + +**NOTHING READY HERE** + +This repo contains early reflections around a ~/.mytilde.json config file. The structure of it is described in `mytilde.rs` while two example files are provided in the `examples/` folder. diff --git a/examples/.mytilde.1.json b/examples/.mytilde.1.json new file mode 100644 index 0000000..3f61a4b --- /dev/null +++ b/examples/.mytilde.1.json @@ -0,0 +1,3 @@ +{ + "domains": ["mydomain.example.com"] +} diff --git a/examples/.mytilde.2.json b/examples/.mytilde.2.json new file mode 100644 index 0000000..c2a849f --- /dev/null +++ b/examples/.mytilde.2.json @@ -0,0 +1,15 @@ +{ + "domains": [ + { + "hostname": "mydomain.example.com", + "alias": ["mydomain.example.net"], + "web": { + "template": "reverse", + "vars": { + "upstream": "127.0.0.1:7777", + "root": "/home/user/www/mydomain.example.com" + } + } + } + ] +} diff --git a/mytilde.rs b/mytilde.rs new file mode 100644 index 0000000..98f741f --- /dev/null +++ b/mytilde.rs @@ -0,0 +1,29 @@ +enum Aliases { + One(String), + More(Vec), +} + +enum Domain { + Name(string), + Config(DomainConfig), +} + +struct DomainConfig { + hostname: String, + alias: Option, + web: Option, +} + +enum Web { + Template(String), + Config(WebConfig) +} + +struct WebConfig { + template: Option, + vars: Map, +} + +struct MyTilde { + domains: Vec, +}