summaryrefslogtreecommitdiff
path: root/script/config/env.lua
diff options
context:
space:
mode:
authorcarsakiller <carsakiller@gmail.com>2024-05-10 03:14:15 +0000
committercarsakiller <carsakiller@gmail.com>2024-05-10 03:14:15 +0000
commitc746d763425e757372dd0270ab92d0f9464ac556 (patch)
treeff4d8c393c3e1f238c076611f6d10437b54d2850 /script/config/env.lua
parent4c7530e997449d5d01ca758f2bea8223e36aafc7 (diff)
downloadlua-language-server-c746d763425e757372dd0270ab92d0f9464ac556.zip
fix: convert ENV value to bool
Diffstat (limited to 'script/config/env.lua')
-rw-r--r--script/config/env.lua22
1 files changed, 17 insertions, 5 deletions
diff --git a/script/config/env.lua b/script/config/env.lua
index 163ee404..ef5b31f2 100644
--- a/script/config/env.lua
+++ b/script/config/env.lua
@@ -1,9 +1,16 @@
-- Handles loading environment arguments
+---Convert a string to boolean
+---@param v string
+local function strToBool(v)
+ return v == "true"
+end
+
---ENV args are defined here.
---- `name` is the ENV arg name
---- `key` is the value used to index `_G` for setting the argument
----@type { name: string, key: string }[]
+---- `converter` if present, will be used to convert the string value into another type
+---@type { name: string, key: string, converter: fun(value: string): any }[]
local vars = {
{
name = "LLS_CHECK_LEVEL",
@@ -15,7 +22,7 @@ local vars = {
},
{
name = "LLS_CONFIG_PATH",
- key = "CONFIGPATH"
+ key = "CONFIGPATH",
},
{
name = "LLS_DOC_OUT_PATH",
@@ -27,7 +34,8 @@ local vars = {
},
{
name = "LLS_FORCE_ACCEPT_WORKSPACE",
- key = "FORCE_ACCEPT_WORKSPACE"
+ key = "FORCE_ACCEPT_WORKSPACE",
+ converter = strToBool,
},
{
name = "LLS_LOCALE",
@@ -43,13 +51,17 @@ local vars = {
},
{
name = "LLS_META_PATH",
- key = "METAPATH"
- }
+ key = "METAPATH",
+ },
}
for _, var in ipairs(vars) do
local value = os.getenv(var.name)
if value then
+ if var.converter then
+ value = var.converter(value)
+ end
+
_G[var.key] = value
end
end