Improve configuration
This commit is contained in:
parent
71498256f6
commit
ace4face5a
9 changed files with 66 additions and 51 deletions
|
@ -1,3 +1,3 @@
|
||||||
#EMGAUWA_CONTROLLER_LOGGING_LEVEL=INFO
|
#EMGAUWA_CONTROLLER__LOGGING__LEVEL=DEBUG
|
||||||
|
|
||||||
#EMGAUWA_CORE_LOGGING_LEVEL=INFO
|
#EMGAUWA_CORE__LOGGING__LEVEL=DEBUG
|
||||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
||||||
/target
|
/target
|
||||||
|
/pkl-out
|
||||||
|
|
||||||
/.env
|
/.env
|
||||||
/api.http
|
/api.http
|
||||||
|
@ -6,3 +7,4 @@
|
||||||
/emgauwa-*.sqlite
|
/emgauwa-*.sqlite
|
||||||
/emgauwa-*.sqlite-*
|
/emgauwa-*.sqlite-*
|
||||||
/emgauwa-*.json
|
/emgauwa-*.json
|
||||||
|
|
||||||
|
|
13
Makefile
13
Makefile
|
@ -1,11 +1,3 @@
|
||||||
ifneq (,$(wildcard ./.env))
|
|
||||||
include .env
|
|
||||||
export
|
|
||||||
endif
|
|
||||||
|
|
||||||
DATABASE_URL ?= sqlite://emgauwa-dev.sqlite
|
|
||||||
export DATABASE_URL
|
|
||||||
|
|
||||||
sqlx:
|
sqlx:
|
||||||
cargo sqlx database drop -y
|
cargo sqlx database drop -y
|
||||||
cargo sqlx database create
|
cargo sqlx database create
|
||||||
|
@ -15,13 +7,16 @@ sqlx:
|
||||||
build-rpi:
|
build-rpi:
|
||||||
cross build --target arm-unknown-linux-gnueabihf
|
cross build --target arm-unknown-linux-gnueabihf
|
||||||
|
|
||||||
emgauwa-%.json: config/emgauwa-%.pkl config/lib/%.pkl config/lib/common.pkl $(wildcard .env)
|
emgauwa-%.json: config/%.pkl config/lib/%.pkl
|
||||||
pkl eval -f json -o $@ $<
|
pkl eval -f json -o $@ $<
|
||||||
|
|
||||||
configs:
|
configs:
|
||||||
$(MAKE) emgauwa-core.json
|
$(MAKE) emgauwa-core.json
|
||||||
$(MAKE) emgauwa-controller.json
|
$(MAKE) emgauwa-controller.json
|
||||||
|
|
||||||
|
pkl-package:
|
||||||
|
pkl project package config --output-path "./pkl-out"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f emgauwa-controller.json
|
rm -f emgauwa-controller.json
|
||||||
rm -f emgauwa-controller.sqlite
|
rm -f emgauwa-controller.sqlite
|
||||||
|
|
8
config/PklProject
Normal file
8
config/PklProject
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
amends "pkl:Project"
|
||||||
|
|
||||||
|
package {
|
||||||
|
name = "emgauwa"
|
||||||
|
baseUri = "package://emgauwa.app/pkl/\(name)"
|
||||||
|
version = "0.1.0"
|
||||||
|
packageZipUrl = "https://emgauwa.app/pkl/\(name)@\(version).zip"
|
||||||
|
}
|
4
config/PklProject.deps.json
Normal file
4
config/PklProject.deps.json
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"schemaVersion": 1,
|
||||||
|
"resolvedDependencies": {}
|
||||||
|
}
|
|
@ -13,59 +13,61 @@ permissions {
|
||||||
}
|
}
|
||||||
|
|
||||||
logging {
|
logging {
|
||||||
level = read?("env:EMGAUWA_CONTROLLER_LOGGING_LEVEL") ?? "DEBUG"
|
level = "INFO"
|
||||||
file = "stdout"
|
file = "stdout"
|
||||||
}
|
}
|
||||||
|
|
||||||
relays {
|
relays {
|
||||||
new {
|
new {
|
||||||
driver = "null"
|
driver = "null"
|
||||||
pin = 24
|
pin = 0
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 23
|
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 22
|
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 27
|
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 18
|
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 17
|
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 15
|
|
||||||
inverted = true
|
|
||||||
}
|
|
||||||
new {
|
|
||||||
driver = "null"
|
|
||||||
pin = 14
|
|
||||||
inverted = true
|
inverted = true
|
||||||
}
|
}
|
||||||
new {
|
new {
|
||||||
driver = "null"
|
driver = "null"
|
||||||
pin = 1
|
pin = 1
|
||||||
|
inverted = true
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 2
|
||||||
|
inverted = true
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 3
|
||||||
|
inverted = true
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 4
|
||||||
|
inverted = true
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 5
|
||||||
|
inverted = true
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 10
|
||||||
|
inverted = true
|
||||||
|
pulse = 10
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 11
|
||||||
|
inverted = true
|
||||||
|
pulse = 10
|
||||||
|
}
|
||||||
|
new {
|
||||||
|
driver = "null"
|
||||||
|
pin = 20
|
||||||
inverted = false
|
inverted = false
|
||||||
}
|
}
|
||||||
new {
|
new {
|
||||||
driver = "null"
|
driver = "null"
|
||||||
pin = 0
|
pin = 21
|
||||||
inverted = false
|
inverted = false
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -13,6 +13,6 @@ permissions {
|
||||||
}
|
}
|
||||||
|
|
||||||
logging {
|
logging {
|
||||||
level = read?("env:EMGAUWA_CORE_LOGGING_LEVEL") ?? "DEBUG"
|
level = "INFO"
|
||||||
file = "stdout"
|
file = "stdout"
|
||||||
}
|
}
|
|
@ -12,5 +12,6 @@ class RelayConfig {
|
||||||
driver: "null"|"gpio"|"piface"
|
driver: "null"|"gpio"|"piface"
|
||||||
pin: Number
|
pin: Number
|
||||||
inverted: Boolean
|
inverted: Boolean
|
||||||
|
pulse: Number(this >= 0)|Null = null
|
||||||
}
|
}
|
||||||
relays: Listing<RelayConfig>
|
relays: Listing<RelayConfig>
|
||||||
|
|
|
@ -49,9 +49,12 @@ pub fn load<T>(config_name: &str, env_prefix: &str) -> Result<T, EmgauwaError>
|
||||||
where
|
where
|
||||||
for<'de> T: serde::Deserialize<'de>,
|
for<'de> T: serde::Deserialize<'de>,
|
||||||
{
|
{
|
||||||
|
let etc_file =
|
||||||
|
config::File::with_name(&format!("/etc/emgauwa/{}", config_name)).required(false);
|
||||||
let local_file = config::File::with_name(&format!("./emgauwa-{}", config_name)).required(false);
|
let local_file = config::File::with_name(&format!("./emgauwa-{}", config_name)).required(false);
|
||||||
|
|
||||||
config::Config::builder()
|
config::Config::builder()
|
||||||
|
.add_source(etc_file)
|
||||||
.add_source(local_file)
|
.add_source(local_file)
|
||||||
.add_source(
|
.add_source(
|
||||||
config::Environment::with_prefix(&format!("EMGAUWA_{}", env_prefix))
|
config::Environment::with_prefix(&format!("EMGAUWA_{}", env_prefix))
|
||||||
|
|
Loading…
Reference in a new issue