marmot
CLI entry point for Marmot.
Responsibilities:
- Parse config and CLI args, open the SQLite database
- Discover SQL directories and .sql files under src/
- Orchestrate per-file processing: read -> validate -> introspect -> codegen
- Detect output collisions, write generated modules, run gleam format
Detail work is delegated: config -> project.gleam, introspection -> sqlite.gleam, code generation -> codegen.gleam. This module only handles CLI I/O (args, env, file reading/writing, stderr, exit codes).
Values
pub fn check_duplicate_columns(
columns: List(@internal Column),
file_path: String,
) -> Result(Nil, Nil)
pub fn check_generated_column_names(
columns: List(@internal Column),
file_path: String,
) -> Result(Nil, Nil)
pub fn check_generated_parameter_names(
parameters: List(@internal Parameter),
file_path: String,
) -> Result(Nil, Nil)
pub fn contains_semicolon_outside_strings(sql: String) -> Bool
Check for semicolons outside of quoted SQL contexts, line comments, and block comments. Delegates to the tokenizer which already handles all quoting and comment styles correctly.
pub fn validate_sql(
trimmed: String,
file_path: String,
) -> Result(String, Nil)