1
Fork 0
generated from lucas/rust-template
Code Issues 1 Pull requests 9 Activity
Var Dump:
dumpVar: only available in dev mode
Mailing List

Expose logging functions to Lua

This commit is contained in:
Lucas Schwiderski 2024-09-19 13:52:36 +02:00
parent d2cb39f9a2
commit 23d27389d3
Signed by: lucas
GPG key ID: AA12679AAA6DF4D8
3 changed files with 38 additions and 1 deletions

2
.gitignore vendored
View file

@ -1,3 +1,3 @@
/target /target
.envrc .envrc
*.lua lua/

View file

@ -160,13 +160,21 @@ pub(crate) enum Method {
Post, Post,
} }
impl Default for Method {
fn default() -> Self {
Self::Get
}
}
#[derive(Clone, Debug, Deserialize)] #[derive(Clone, Debug, Deserialize)]
pub(crate) struct ApiTask { pub(crate) struct ApiTask {
pub id: String, pub id: String,
#[serde(default)] #[serde(default)]
pub delay: u64, pub delay: u64,
#[serde(default)]
pub method: Method, pub method: Method,
pub url: String, pub url: String,
#[serde(default)]
pub body: serde_json::Value, pub body: serde_json::Value,
#[serde(default)] #[serde(default)]
pub query: HashMap<String, String>, pub query: HashMap<String, String>,

View file

@ -19,6 +19,34 @@ pub fn worker(
let config = lua.load(config).set_name("config"); let config = lua.load(config).set_name("config");
lua.scope(|scope| { lua.scope(|scope| {
let log_trace_fn = scope.create_function(|_, s: String| {
tracing::trace!(name: "lua", "{}", s);
Ok(())
})?;
let log_debug_fn = scope.create_function(|_, s: String| {
tracing::debug!(name: "lua", "{}", s);
Ok(())
})?;
let log_info_fn = scope.create_function(|_, s: String| {
tracing::info!(name: "lua", "{}", s);
Ok(())
})?;
let log_warn_fn = scope.create_function(|_, s: String| {
tracing::warn!(name: "lua", "{}", s);
Ok(())
})?;
let log_error_fn = scope.create_function(|_, s: String| {
tracing::error!(name: "lua", "{}", s);
Ok(())
})?;
let log_tbl = lua.create_table_with_capacity(0, 5)?;
log_tbl.set("trace", log_trace_fn)?;
log_tbl.set("debug", log_debug_fn)?;
log_tbl.set("info", log_info_fn)?;
log_tbl.set("warn", log_warn_fn)?;
log_tbl.set("error", log_error_fn)?;
let ntfy_fn = scope.create_function_mut(|_, data: mlua::Value| { let ntfy_fn = scope.create_function_mut(|_, data: mlua::Value| {
let data = lua.from_value(data)?; let data = lua.from_value(data)?;
tracing::trace!("Sending Ntfy message: {:?}", data); tracing::trace!("Sending Ntfy message: {:?}", data);
@ -45,6 +73,7 @@ pub fn worker(
} }
})?; })?;
globals.set("log", log_tbl)?;
globals.set("ntfy", ntfy_fn)?; globals.set("ntfy", ntfy_fn)?;
globals.set("api_task", set_api_task_fn)?; globals.set("api_task", set_api_task_fn)?;