Getting Started
Introduction
7 • Environment Variables

Environment Variables

Environment variables, just like script arguments, are available using the process built-in library, more specifically in process.env:

local process = require("@lune/process")
 
assert(process.env.PATH ~= nil, "Missing PATH")
assert(process.env.PWD ~= nil, "Missing PWD")
 
process.env.MY_VAR = "Hello, env!"
 
print(process.env.MY_VAR)
--> Hello, env!

Unlike process.args, environment variables can be read from and written to freely, and can be done at any point during runtime.

You can also iterate over all of the known environment variables using Luau's generalized iteration. Here is an example snippet that prints a checkmark if an environment variable has some contents and is not empty, and a red cross otherwise:

local process = require("@lune/process")
 
for key, value in process.env do
	local box = if value ~= "" then "✅" else "❌"
	print(string.format("[%s] %s", box, key))
end

Note that using pairs or ipairs will not work here, only generalized iteration.