Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions astra/lua/astra.d.lua
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,11 @@ function os.setenv(key, value)
---@diagnostic disable-next-line: undefined-global
return astra_internal__setenv(key, value)
end

---Checks if the current script is the main script being executed (like Python's `if __name__ == '__main__'`)
---@param current_file string
---@return boolean
function is_main_script(current_file)
---@diagnostic disable-next-line: undefined-global
return astra_internal__is_main_script(current_file)
end
6 changes: 6 additions & 0 deletions astra/teal/astra.d.tl
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,9 @@ local type astra_internal__regex = function(expression: string): Regex
global function regex(expression: string): Regex
return astra_internal__regex(expression)
end

local type astra_internal__is_main_script = function(current_file: string): boolean
---Checks if the current script is the main script being executed (like Python's `if __name__ == '__main__'`)
global function is_main_script(current_file: string): boolean
return astra_internal__is_main_script(current_file)
end
11 changes: 11 additions & 0 deletions src/components/global.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ pub fn register_to_lua(lua: &mlua::Lua) -> mlua::Result<()> {
spawn_task(lua)?;
spawn_interval(lua)?;
spawn_timeout(lua)?;
is_main_script(lua)?;

Ok(())
}
Expand Down Expand Up @@ -204,6 +205,16 @@ fn spawn_interval(lua: &mlua::Lua) -> mlua::Result<()> {
)
}

fn is_main_script(lua: &mlua::Lua) -> mlua::Result<()> {
lua.globals().set(
"astra_internal__is_main_script",
lua.create_function(|lua, current_file: String| {
let main_script: String = lua.globals().get("ASTRA_INTERNAL__CURRENT_SCRIPT")?;
Ok(current_file == main_script)
})?,
)
}

pub struct AstraRegex {
re: regex::Regex,
}
Expand Down