Skip to main content

Module cmd

Module cmd 

Source
Expand description

§Command Line Interface Module

This module provides a secure and robust command-line interface (CLI) for the Static Site Generator (SSG). It handles argument parsing, configuration management, and validation of user inputs to ensure that the static site generator operates reliably and securely.

§Key Features

  • Safe path handling (including symbolic link checks and canonicalization)
  • Input validation (URL, language, environment variables)
  • Secure configuration with size-limited config files
  • Builder pattern for convenient configuration construction
  • Error handling via CliError

§Example Usage

use ssg::cmd::{Cli, SsgConfig};

fn main() -> anyhow::Result<()> {
    let matches = Cli::build().get_matches();

    // Attempt to load configuration from command-line arguments
    let mut config = SsgConfig::from_matches(&matches)?;

    println!("Configuration loaded: {:?}", config);
    // Continue with application logic...
    Ok(())
}

Modules§

audit
ssg audit subcommand handler.
completions
Shell-completion generation from the live clap definition.
man
Man-page generation from the live clap definition.

Structs§

Cli
A simple CLI struct for building the SSG command.
EdgeHeadersConfig
Edge-runtime header emitter configuration (issue #550). Surfaces the [edge_headers] section of ssg.toml:
ImageConfig
Image-optimization tunables (issue #521). Surfaces the [image] section of ssg.toml:
LanguageCode
Type-safe representation of a language code.
SecurityConfig
Security tunables (v0.0.47 plan §3 item 2.3). Surfaces the [security] section of ssg.toml:
SsgConfig
Core configuration for the static site generator.
SsgConfigBuilder
Builder for SsgConfig.

Enums§

CliError
Possible errors that can occur during CLI operations.
CliInvocation
Outcome of Cli::parse_and_dispatch — tells main/run which subcommand was selected, or that the legacy form was used.
SriAlgorithm
Digest algorithm used for Subresource Integrity integrity= attributes on externalized assets (v0.0.47 plan §3 item 2.3).

Constants§

DEFAULT_HOST
Default host for the local development server.
DEFAULT_PORT
Default port for the local development server.
DEFAULT_SITE_NAME
Default site name for the configuration.
DEFAULT_SITE_TITLE
Default site title for the configuration — deliberately empty.
DEPLOY_TARGETS
Deployment targets accepted by ssg deploy --target ….
LEGACY_DEPRECATION_WARNING
Deprecation message printed to stderr when the legacy flag-only form is used. Kept as a const so tests can assert on the exact text.
MAX_CONFIG_SIZE
Maximum allowed size in bytes for config files.
RESERVED_NAMES
Reserved names that cannot be used as paths on Windows systems.
SUBCOMMANDS
Subcommand names recognised by the unified CLI. Used to discriminate between subcommand-style invocations (ssg dev, ssg build …) and the legacy flag-only form (ssg -s public).

Statics§

DEFAULT_CONFIG
A static default configuration for the SSG site.

Functions§

default_config
Returns a reference to the lazily-initialised default configuration.
is_valid_url
Returns true if s looks like a valid HTTP(S) URL.
resolve_host
Resolve the dev-server host, preferring $SSG_HOST over DEFAULT_HOST.
resolve_port
Resolve the dev-server port, preferring $SSG_PORT over DEFAULT_PORT.
validate_url
Validates a URL for security and format.