# Header Remake
Header Remake is a CLI tool inspired by [headers](https://github.com/transmissions11/headers) by `transmission11`.
This tool generates customizable, visually appealing comment headers for programming files. With options for symbols, length, and format, Header Remake makes it easy to add professional, readable headers to code files.
## Table of Contents
- [Header Remake](#header-remake)
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Options](#options)
- [Examples](#examples)
- [Errors](#errors)
- [Release](#release)
- [Contributing](#contributing)
- [License](#license)
## Features
- **Custom Symbols**: Style your headers with any symbol (e.g., `#` for Python, `//` for JavaScript).
- **Adjustable Length**: Define the total length of the header line for consistent formatting.
- **Single-Line or Boxed Headers**: Choose between single-line headers or boxed multi-line headers.
- **Clipboard Integration**: Automatically copies the generated header to your clipboard for quick pasting.
- **Error Handling**: Provides helpful error messages for unsupported inputs or clipboard issues.
## Installation
- ### By Cloning the Repository
1. Clone the repository:
```sh
git clone https://github.com/ArshilHapani/Header-remake
cd Header-remake
```
2. Build the project:
```sh
cargo build --release
```
- ### By Downloading the Binary
- Directly download the binary from [here](https://github.com/ArshilHapani/Header-remake/releases/download/1.0.0/headers-remake) or
- Download binary using `curl` :
```sh
curl -L -o headers https://github.com/ArshilHapani/Header-remake/releases/download/0.1.2/headers-remake
chmod +x headers
sudo mv headers /usr/local/bin
```
## Usage
Run the `headers` command with any of the options below to create a custom header:
```sh
headers [OPTIONS] [TITLE]
```
- **TITLE** is optional; if omitted, it defaults to "Title."
### Options
| `-s`, `--symbol` | Set the symbol for the header (default: `/`). |
| `-l`, `--length` | Set the total length of the header line (default: `50`). |
| `-sl`, `--single-line` | Generate a single-line header instead of a boxed header. |
| `-h`, `--help` | Display help information. |
### Examples
- **Basic Header**:
```sh
headers "My Project"
```
**Output:**
```
//////////////////////////////////////////////////
/////////////////// MY PROJECT ///////////////////
//////////////////////////////////////////////////
```
Creates a 50-character header with the title "MY PROJECT" centered using `/`.
- **Custom Symbol and Length**:
```sh
headers -s "#" -l 60 "My Header"
```
**Output:**
```
############################################################
######################## MY HEADER ########################
############################################################
```
Creates a 60-character header with `#` symbols surrounding "MY HEADER".
- **Single-Line Header**:
```sh
headers -sl -s "//" "Single Line"
```
**Output:**
```
//////////////////////////////////// SINGLE LINE ////////////////////////////////////
```
Generates a single-line header formatted with `//` symbols.
## Errors
- **Length Too Short**: If the specified length is too small to accommodate the title, an error message appears.
- **Clipboard Issues**: If clipboard access fails, an error message notifies the user.
## Release
Latest release can be found [here](https://github.com/ArshilHapani/Header-remake/releases)
## Contributing
Contributions are welcome! Please submit issues or create pull requests for improvements or new features.
## License
This project is licensed under the MIT License.
Acknowledgment to the original [headers](https://github.com/transmissions11/headers) project by `transmission11`.