Definitively.CLI.InputParser (definitively v0.4.0)

Copy Markdown

Parses CLI flags for declared program inputs.

Summary

Functions

Returns help lines for declared program inputs.

Parses argv after the program path into a string-keyed input map.

Types

parse_error()

@type parse_error() ::
  {:unknown_flag, String.t(), [String.t()]}
  | {:missing_required, [String.t()]}
  | {:duplicate_flag, String.t()}
  | {:missing_value, String.t()}

Functions

help_lines(program)

@spec help_lines(Definitively.Domain.Program.t()) :: [String.t()]

Returns help lines for declared program inputs.

parse(argv, program, workspace_root)

@spec parse([String.t()], Definitively.Domain.Program.t(), Path.t()) ::
  {:ok, map()} | {:error, parse_error()}

Parses argv after the program path into a string-keyed input map.

Applies defaults, expands path inputs relative to workspace_root, and validates required inputs before the FSM starts.