Skip to main content

Module init

Module init 

Source
Expand description

Команда light init: создание скелета нового проекта Light.

Модуль генерирует минимальный проект: Cargo.toml с зависимостью light-fw, самодостаточный src/main.rs (окно с текстом «Hello, Light!»), .gitignore и light.lock. Внешние эффекты (проверка cargo) идут через трейт CommandRunner, поэтому логика тестируется без запуска процессов.

Structs§

InitOptions
Параметры команды light init.
InitPlan
Что будет создано (результат plan).
InitReport
Итог создания проекта.

Enums§

InitComponent
Дополнительный компонент, подключаемый флагом --with.
InitTemplate
Готовый пример, который light init --template кладёт в новый проект.

Constants§

CARGO_CONFIG
Алиасы cargo dev / cargo prod: отладочный режим (DevTools) и релиз.
GITIGNORE
Содержимое .gitignore нового проекта.
LIGHT_CONFIG
Конфигурация light.config.json: профили dev (DevTools на 9229, debug) и prod (DevTools выключен, error).
LIGHT_DEPENDENCY_VERSION
Версия мета-крейта light-fw, которую прописывает light init.

Functions§

apply
Полный цикл: проверка cargo → план → запись файлов → light.lock.
cargo_toml
Содержимое Cargo.toml для нового проекта: зависимости light-fw, компоненты и фича dev-mode (алиас light-fw/dev-mode).
main_rs
Содержимое src/main.rs — минимальное приложение с HTML-шаблоном (templates/app.html) и пустой прокси-структурой.
minor_version
Minor-диапазон версии (major.minor), используемый в Cargo.toml нового проекта: пользователь всегда получает latest major.minor.x, не привязываясь к конкретному yanked-патчу.
plan
Строит план создания проекта, проверяя, что каталог свободен.
project_dir
Целевой каталог проекта из параметров.
require_cargo
Проверяет, что cargo доступен в PATH.
scaffold
Записывает файлы плана на диск, создавая каталоги по мере необходимости.
validate_name
Проверяет, что name — допустимое имя крейта.