CLI Reference¶
This document provides a reference for the struct
command-line interface (CLI).
Overview¶
The struct
CLI allows you to generate project structures from YAML configuration files. It supports both built-in structure definitions and custom structures.
Basic Usage:
Global Options¶
These options are available for all commands:
-h, --help
: Show the help message and exit.-l LOG, --log LOG
: Set the logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL).-c CONFIG_FILE, --config-file CONFIG_FILE
: Path to a configuration file.-i LOG_FILE, --log-file LOG_FILE
: Path to a log file.
Commands¶
info
¶
Show information about a structure definition.
Usage:
Arguments:
structure_definition
: Name of the structure definition.-s STRUCTURES_PATH, --structures-path STRUCTURES_PATH
: Path to structure definitions.
validate
¶
Validate the YAML configuration file.
Usage:
Arguments:
yaml_file
: Path to the YAML configuration file.
generate
¶
Generate the project structure.
Usage:
struct generate [-h] [-l LOG] [-c CONFIG_FILE] [-i LOG_FILE] [-s STRUCTURES_PATH] [-n INPUT_STORE] [-d] [-v VARS] [-b BACKUP] [-f {overwrite,skip,append,rename,backup}] [-p GLOBAL_SYSTEM_PROMPT] [--non-interactive] [--mappings-file MAPPINGS_FILE] [-o {console,file}] structure_definition base_path
Arguments:
structure_definition
: Path to the YAML configuration file.base_path
: Base path where the structure will be created.-s STRUCTURES_PATH, --structures-path STRUCTURES_PATH
: Path to structure definitions.-n INPUT_STORE, --input-store INPUT_STORE
: Path to the input store.-d, --dry-run
: Perform a dry run without creating any files or directories.-v VARS, --vars VARS
: Template variables in the format KEY1=value1,KEY2=value2.-b BACKUP, --backup BACKUP
: Path to the backup folder.-f {overwrite,skip,append,rename,backup}, --file-strategy {overwrite,skip,append,rename,backup}
: Strategy for handling existing files.-p GLOBAL_SYSTEM_PROMPT, --global-system-prompt GLOBAL_SYSTEM_PROMPT
: Global system prompt for OpenAI.--non-interactive
: Run the command in non-interactive mode.--mappings-file MAPPINGS_FILE
: Path to a YAML file containing mappings to be used in templates (can be specified multiple times).-o {console,file}, --output {console,file}
: Output mode.
list
¶
List available structures.
Usage:
Arguments:
-s STRUCTURES_PATH, --structures-path STRUCTURES_PATH
: Path to structure definitions.
generate-schema
¶
Generate JSON schema for available structures.
Usage:
struct generate-schema [-h] [-l LOG] [-c CONFIG_FILE] [-i LOG_FILE] [-s STRUCTURES_PATH] [-o OUTPUT]
Arguments:
-s STRUCTURES_PATH, --structures-path STRUCTURES_PATH
: Path to structure definitions.-o OUTPUT, --output OUTPUT
: Output file path for the schema (default: stdout).
Examples¶
Basic Structure Generation¶
Generate a structure using a built-in definition:
Generate from a custom YAML file:
Using Custom Structures¶
Generate with custom structure path:
Template Variables¶
Pass template variables to the structure:
Dry Run¶
Test structure generation without creating files:
File Strategies¶
Handle existing files with different strategies:
# Skip existing files
struct generate -f skip file://structure.yaml ./output
# Backup existing files
struct generate -f backup -b ./backup file://structure.yaml ./output
Console Output¶
Output to console instead of creating files:
Validation¶
Validate a YAML configuration before generation:
List Available Structures¶
List all built-in structures:
List structures from custom path:
Get Structure Information¶
Get detailed information about a structure:
Generate Schema¶
Generate JSON schema and save to file: