#scaffolding #automation #codegen #file-content #cli #rust

app skeletor

A blazing-fast Rust scaffolding tool with YAML-driven snapshots

4 releases (stable)

2.2.22 Feb 21, 2025
0.0.0 May 27, 2016

#59 in Development tools

MIT license

61KB
1.5K SLoC

Skeletor

Build Status codecov

A blazing-fast Rust scaffolding tool.
Generate thousands of files and directories with file contents from a YAML configuration in milliseconds.
📸 Capture existing nested folders as YAML templates with snapshot mode.

🚀 Usage

Skeletor simplifies project scaffolding with an easy-to-use YAML configuration.

🛠 Generate Files and Directories

With a .skeletorrc file

skeletor apply

Using a custom YAML config

skeletor apply -i custom.yml

📁 Example .skeletorrc Configuration

Create a YAML file (.skeletorrc) to define the directory structure:

directories:
  src:
    main.rs: |
      fn main() {
          println!("Hello, Skeletor!");
      }
    lib.rs: ""
  tests:
    integration.rs: |
      #[test]
      fn sample_test() {
          assert_eq!(2 + 2, 4);
      }
  Cargo.toml: |
    [package]
    name = "my_project"
    version = "0.1.0"

Apply the Configuration

skeletor apply

📁 This will generate the entire folder structure instantly!

Preview Before Running

skeletor apply --dry-run

🛠️ Installation

Option 1: Install via Script (Linux/macOS)

curl -fsSL https://raw.githubusercontent.com/jasonnathan/skeletor/main/install.sh | bash

⚠️ Tip: Review the script before running to ensure security.

Option 2: Homebrew (macOS & Linux)

brew tap jasonnathan/skeletor
brew install skeletor

💡 Easiest method if Homebrew is installed.

cargo install skeletor

🔹 Installs directly from crates.io.

Option 4: Build from Source

git clone https://github.com/jasonnathan/skeletor.git
cd skeletor
cargo install --path .

🛠️ Rust & Cargo need to be installed on your system.

🔥 Features

  • ✅ Generate Nested Files & Directories Instantly
  • ✅ Dry-Run Mode – Preview before applying
  • ✅ Snapshot Mode – Convert an existing folder into YAML
  • ✅ Ignore Patterns & Binary File Detection
  • ✅ Metadata & Stats Included

📸 Snapshot Mode

Capture a YAML snapshot of an existing folder.

Create a Snapshot

skeletor snapshot .

Ignore files and add a note

skeletor snapshot -n "Removed .git folder"  -I .gitignore -I .git/ .

Options

  • -o custom.yml → Path to custom yaml file (defaults to .skeletorrc)
  • -I "*.log" → Exclude files based on patterns (a path works too).
  • -n "Initial snapshot" → Add custom notes.

📊 Info Mode

Display metadata from a .skeletorrc file.

skeletor info

🤝 Contributing

Contributions are welcome! Open an issue or submit a pull request.

📜 License

This project is licensed under the MIT License.

✨ Enjoy effortless scaffolding with Skeletor! 🚀

Dependencies

~6.5–9MB
~165K SLoC