aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMartin Fischer <martin@push-f.com>2022-10-28 10:56:38 +0200
committerMartin Fischer <martin@push-f.com>2022-10-28 12:25:57 +0200
commit20555bba82f9420998ce0d4b42f29d9398d5036b (patch)
tree729c7b7407ac80c5c52f50aab26869a497dee834 /src
parent0b699948d33c6b209439e2eb77c60c220130dc6b (diff)
drop support for Lua shebangs
Now that we have Lua templating, which is more flexible, it doesn't make sense to keep Lua shebangs around.
Diffstat (limited to 'src')
-rw-r--r--src/get_routes.rs28
-rw-r--r--src/lua.rs43
2 files changed, 0 insertions, 71 deletions
diff --git a/src/get_routes.rs b/src/get_routes.rs
index 951c7b6..10d3476 100644
--- a/src/get_routes.rs
+++ b/src/get_routes.rs
@@ -11,7 +11,6 @@ use hyper::http::request::Parts;
use serde::Deserialize;
use sputnik::html_escape;
use sputnik::request::SputnikParts;
-use std::fmt::Write;
use std::str::from_utf8;
use crate::action_links;
@@ -81,33 +80,6 @@ fn view_blob<C: Controller>(
match from_utf8(blob.content()) {
Ok(text) => {
- #[cfg(feature = "lua")]
- if let Some(script) = super::lua::parse_shebang(text) {
- match script.run(&ctx) {
- Ok(output) => {
- write!(
- page.body,
- "<div>rendered with <a href='{}'>{}</a></div>",
- html_escape(
- controller.build_url_path(&ctx.branch, &script.module_path())
- ),
- html_escape(script.lua_module_name)
- );
- page.body.push_str(&output);
- }
- Err(err) => {
- write!(
- page.body,
- "<div class=error><a href='{}'>{}</a>: {err}</div>",
- html_escape(
- controller.build_url_path(&ctx.branch, &script.module_path())
- ),
- html_escape(script.lua_module_name)
- );
- }
- };
- return Ok(page.into());
- }
if let Some(renderer) = get_renderer(&ctx.path) {
renderer(text, &mut page, RenderMode::View, &ctx);
} else {
diff --git a/src/lua.rs b/src/lua.rs
index 5caf3f1..e9c4841 100644
--- a/src/lua.rs
+++ b/src/lua.rs
@@ -16,23 +16,6 @@ use self::template::ArgIndex;
mod serde;
pub mod template;
-pub struct Script<'a> {
- pub lua_module_name: &'a str,
- input: &'a str,
-}
-
-pub fn parse_shebang(text: &str) -> Option<Script> {
- if let Some(rest) = text.strip_prefix("#!") {
- if let Some((lua_module_name, input)) = rest.split_once('\n') {
- return Some(Script {
- lua_module_name,
- input,
- });
- }
- }
- None
-}
-
pub enum ScriptError {
ModuleNotFound,
ModuleNotUtf8,
@@ -90,32 +73,6 @@ pub fn lua_context<A>(run: impl FnOnce(rlua::Context) -> rlua::Result<A>) -> rlu
})
}
-impl<'a> Script<'a> {
- pub fn module_path(&self) -> String {
- format!("bin/{}.lua", self.lua_module_name)
- }
-
- pub fn run(&self, ctx: &Context) -> Result<String, ScriptError> {
- let filename = self.module_path();
-
- let lua_entr = ctx
- .branch_head()
- .unwrap()
- .tree()
- .and_then(|tree| tree.get_path(Path::new(&filename)))
- .map_err(|_| ScriptError::ModuleNotFound)?;
-
- let lua_blob = ctx.repo.find_blob(lua_entr.id()).unwrap();
- let lua_code = from_utf8(lua_blob.content()).map_err(|_| ScriptError::ModuleNotUtf8)?;
- lua_context(|ctx| {
- let module: Table = ctx.load(lua_code).eval()?;
- let view: Function = module.get("view")?;
- view.call(self.input)
- })
- .map_err(ScriptError::LuaError)
- }
-}
-
fn module_path(module_name: &str) -> String {
format!("modules/{}.lua", module_name)
}