Practical Scripting Patterns
Required Values
Validate that a script received a required value.
required-value
A script can check a required value before doing work. The example models the decision with scalar fixture data instead of reading real process arguments.
Required Values
required_value.lua
Replay: real traced execution (multi-file project)
local name = ""
local status = "missing"
local message = "name required"
if name ~= "" then
status = "ok"
message = "run " .. name
end
print("name=" .. name)
print("status=" .. status)
print("message=" .. message)
local name = "build"
local status = "missing"
local message = "name required"
if name ~= "" then
status = "ok"
message = "run " .. name
end
print("name=" .. name)
print("status=" .. status)
print("message=" .. message)
local name = "deploy"
local status = "missing"
local message = "name required"
if name ~= "" then
status = "ok"
message = "run " .. name
end
print("name=" .. name)
print("status=" .. status)
print("message=" .. message)
name ← (empty), status ← missing, message ← name required
1local name→ (empty) = "" --@name="build", "deploy"2local status→ missing = "missing"3local message→ name required = "name required"45if name ~= "" then6 status = "ok"7 message = "run " .. name8end910print("name=" .. name(empty))11print("status=" .. statusmissing)12print("message=" .. messagename required)outputname= status=missing message=name required
name ← build, status ← missing, message ← name required
1local name→ build = "build"2local status→ missing = "missing"3local message→ name required = "name required"status ← ok, message ← run build
5if namebuild ~= "" then6 status→ ok = "ok"7 message→ run build = "run " .. namebuild8endprint("name=" .. name)
10print("name=" .. namebuild)11print("status=" .. statusok)12print("message=" .. messagerun build)outputname=build status=ok message=run build
name ← deploy, status ← missing, message ← name required
1local name→ deploy = "deploy"2local status→ missing = "missing"3local message→ name required = "name required"status ← ok, message ← run deploy
5if namedeploy ~= "" then6 status→ ok = "ok"7 message→ run deploy = "run " .. namedeploy8endprint("name=" .. name)
10print("name=" .. namedeploy)11print("status=" .. statusok)12print("message=" .. messagerun deploy)outputname=deploy status=ok message=run deploy