tree-create 0.3.0

A utility to create directory structures from a tree-like text input
Documentation
# tree-create

A command-line utility to create directory structures from tree-like text input.

## Installation

```bash
cargo install tree-create
```

## Usage

`tree-create` supports multiple ways to input your directory structure:

### Interactive Editor (Default)
Simply run `tree-create` with no arguments to open your default editor:

```bash
tree-create
```

This will open your system's default editor (defined by `$EDITOR`) where you can input your directory structure. Save and close the file when you're done, and it will create the structure.

### File Input
Pass a file containing your directory structure:

```bash
tree-create input.txt
```

### Inline Input
Use the `-i` or `--inline` flag to input the structure directly in the terminal:

```bash
tree-create -i
```

## Input Formats

`tree-create` supports two input formats:

### ASCII Tree Format
```
my-project/
├── src/
│   ├── main.rs
│   └── lib.rs
└── Cargo.toml
```

### Simple Indented Format
You can use any consistent indentation (spaces or tabs):
```
my-project/
  src/
    main.rs
    lib.rs
  Cargo.toml
```

or
```
my-project/
    src/
        main.rs
        lib.rs
    Cargo.toml
```

## Rules and Validation

- Root directory must not be indented
- Indentation must be consistent throughout the structure
- Can't skip indentation levels
- Directories must end with a forward slash (`/`)
- Empty lines are ignored

## Examples

Create a simple Rust project structure:
```
my-project/
  src/
    main.rs
    lib.rs
  Cargo.toml
```

Create a more complex web project:
```
web-app/
  src/
    components/
      ui/
        buttons/
          primary.rs
          secondary.rs
        inputs/
          text.rs
          number.rs
    pages/
      home.rs
      about.rs
  public/
    index.html
    styles.css
  Cargo.toml
```

## Handling Existing Files and Directories

By default, `tree-create` will:
- Skip creating directories and files that already exist (preserving their contents)
- Create any new directories and files in the structure
- Print messages indicating which items were skipped and which were created

To overwrite existing files and directories, use the `--force` flag:
```bash
tree-create --force input.txt
```

When using `--force`:
- Existing files will be overwritten (emptied)
- Existing directories will be preserved, but any files specified in the tree will be overwritten
- If a file exists where a directory is specified (or vice versa), it will be replaced

**Note:** Be careful with `--force` as it will overwrite files without confirmation.

## Supported Editors

The following editors are explicitly supported for interactive mode:
- vim/neovim
- nano
- VS Code (automatically adds `--wait` flag)

Other editors may work but are not officially supported.