113 lines
2.8 KiB
Markdown
113 lines
2.8 KiB
Markdown
# prodir
|
|
|
|
This is a Python package designed to display and create directory structures in a tree-like format. This tool provides an easy-to-read overview of the directory hierarchy, making it easier for developers to navigate complex project structures and automate the creation of directory layouts from predefined files.
|
|
|
|
#### Installation
|
|
|
|
To install `prodir`, you can use pip:
|
|
|
|
```bash
|
|
pip install git+https://gitea.fabelous.app/Fabel/prodir.git
|
|
```
|
|
|
|
#### Usage
|
|
|
|
You can run `prodir` from the command line. By default, it will analyze the current directory and print its structure in a tree-like format. You can also specify a path to another directory.
|
|
|
|
To display the directory structure of the current directory:
|
|
|
|
```bash
|
|
python -m prodir display
|
|
```
|
|
|
|
or
|
|
|
|
```bash
|
|
prodir
|
|
```
|
|
|
|
To display the directory structure of a specific directory:
|
|
|
|
```bash
|
|
python -m prodir display /path/to/directory
|
|
```
|
|
or
|
|
|
|
|
|
```bash
|
|
python -m prodir /path/to/directory
|
|
```
|
|
|
|
To create a directory structure from a file:
|
|
|
|
```bash
|
|
python -m prodir create /path/to/structure/file.txt -o /output/directory
|
|
|
|
or
|
|
|
|
```
|
|
|
|
```bash
|
|
python -m prodir create /path/to/structure/file.txt #will create it in current dir
|
|
```
|
|
|
|
#### Options
|
|
|
|
- `-v` or `--verbose`: Show more detailed output, including information about the path being analyzed.
|
|
- `-o` or `--output`: Specify the output directory for the `create` command.
|
|
|
|
Examples:
|
|
|
|
```bash
|
|
python -m prodir display /path/to/directory -v
|
|
```
|
|
|
|
#### Important Files and Folders Ignored
|
|
|
|
By default, `prodir` ignores files and folders that start with `_` or `.`. However, it does include the following exceptions:
|
|
|
|
- `__init__.py` and `__main__.py` files: These are considered important and will be included in the output.
|
|
- Special folders like `build`, `.git`, `node_modules`, etc.: These are also ignored to keep the output focused on the essential parts of the directory structure.
|
|
#### Example Input
|
|
|
|
```plaintext
|
|
project/
|
|
├── src/
|
|
│ ├── __init__.py
|
|
│ ├── main.py
|
|
│ ├── module1.py
|
|
│ └── module2.py
|
|
├── config/
|
|
│ └── config.yaml
|
|
├── .gitignore
|
|
├── pyproject.toml
|
|
├── setup.py
|
|
├── LICENSE
|
|
└── README.m
|
|
```
|
|
|
|
#### Example Output
|
|
|
|
```plaintext
|
|
LICENSE
|
|
README.m
|
|
config/
|
|
└── config.yaml
|
|
pyproject.toml
|
|
setup.py
|
|
src/
|
|
├── __init__.py
|
|
├── main.py
|
|
├── module1.py
|
|
└── module2.py
|
|
```
|
|
|
|
#### Commands
|
|
|
|
- `display`: Displays the directory structure of a specified path or the current directory.
|
|
- Usage: `prodir display [path] [-v]`
|
|
- Example: `python -m prodir display /path/to/directory`
|
|
|
|
- `create`: Creates a directory structure from a file containing the structure definition.
|
|
- Usage: `prodir create [file] [output_directory] [-v]`
|
|
- Example: `python -m prodir create /path/to/structure/file.txt` |