Skip to main content

siderite_cli/
lib.rs

1//! The siderite command line.
2//!
3//! Two entry points:
4//!
5//! * [`AppCli`] is the command line of an **application binary**. It needs the
6//!   application's [`App`](siderite_core::App) and model metadata, so it can
7//!   serve the app (`run`), list its routes, validate it (`check`), open
8//!   a database shell and run every migration command including
9//!   `makemigrations`.
10//! * [`run`] is the `siderite` binary. In a Cargo package it wraps `cargo run`
11//!   for those commands; `new` writes a project; without a package it runs
12//!   JSON-file `migrate` / `rollback` / `showmigrations` / `squashmigrations`.
13
14#![forbid(unsafe_code)]
15
16mod ai;
17mod app_cli;
18mod args;
19mod cargo_msg;
20pub mod check;
21pub mod commands;
22mod completions;
23mod config;
24pub mod connect;
25pub mod dbshell;
26mod deps;
27mod dev;
28mod dispatch;
29mod docs;
30mod doctor;
31mod error;
32mod explain;
33#[cfg(test)]
34mod fixtures;
35mod fsio;
36mod generate;
37#[cfg(feature = "mcp")]
38mod mcp;
39mod openapi;
40mod package;
41mod process;
42mod project;
43pub mod report;
44pub mod routes;
45mod scaffold;
46mod secret_files;
47pub mod seed;
48mod services;
49pub mod settings;
50mod standalone;
51mod status;
52mod target;
53mod upgrade;
54mod verify;
55mod workspace;
56
57pub use app_cli::AppCli;
58pub use check::{CheckIssue, CheckLevel, check};
59pub use connect::connect_url;
60pub use dbshell::ShellCommand;
61pub use dispatch::run;
62pub use error::CliError;
63pub use routes::{RouteRow, render_routes, route_table};
64pub use seed::{SeedError, Seeding};
65pub use settings::{CliSettings, DEFAULT_ADDR};