primiti_ve/cli

a small, runtime agnostic cli builder

cli

a small, runtime agnostic cli builder

example usage

lune

local process = require("@lune/process")
local cli = require(path.to.package)

local command = cli.builders.command.new("test")

local flag1 = cli.builders.flag.new("--flag1", nil, "flag1")
local flag2 = cli.builders.flag.new("--flag2", { "-f2" }, "flag2")
local flag3 = cli.builders.flag.new("--output", nil, "output", true)

command:add_flag(flag1)
command:add_flag(flag2)
command:add_flag(flag3)

-- or:
-- command:add_flags({ flag1, flag2 })

local args = process.args
local parsed = command:parse(args)

print(parsed)

roblox/luau

local cli = require(path.to.package)

local command = cli.builders.command.new("test")

local flag1 = cli.builders.flag.new("--flag1", nil, "flag1")
local flag2 = cli.builders.flag.new("--flag2", { "-f2" }, "flag2")
local flag3 = cli.builders.flag.new("--output", nil, "output", true)

command:add_flag(flag1)
command:add_flag(flag2)
command:add_flag(flag3)

-- or:
-- command:add_flags({ flag1, flag2 })

local args = { "--flag1", "--output", "test" } -- supply your own args somehow
local parsed = command:parse(args)

print(parsed)