tasg 0.1.0

Manage your tasks with `tasg`!
Documentation
# tasg

_Manage your tasks with `tasg`!_

`tasg` is a simple command-line task manager written in Rust. It allows you to add, list, complete, and delete tasks, helping you stay organized.

## Features

- **Add New Tasks**: Easily add tasks with descriptions.
- **List Tasks**: View all tasks or filter to see only incomplete tasks.
- **Complete Tasks**: Mark tasks as complete.
- **Delete Tasks**: Remove tasks when they are no longer needed.

## Installation

1. Ensure you have [Rust]https://www.rust-lang.org/ installed.
2. Clone the repository:

   ```sh
   git clone https://github.com/Ce11an/tasg.git
   cd tasg
   ```

3. Build the project:

   ```sh
   cargo build --release
   ```

4. The compiled binary will be available in the `target/release` directory. To install it globally, use:

   ```sh
   cargo install --path .
   ```

## Uninstallation

To uninstall `tasg`, you can use Cargo to remove the installed binary:

```sh
cargo uninstall tasg
```

### Clean Up Configuration Files

After uninstalling, you may want to remove the configuration directory where `tasg` stores task data:

- **Linux**:

  ```sh
  rm -rf ~/.config/tasg
  ```

- **Windows**:

  ```cmd
  rd /s /q C:\Users\Annie\AppData\Roaming\tasg
  ```

- **macOS**:

  ```sh
  rm -rf /Users/Annie/Library/Application\ Support/tasg
  ```

Adjust the paths as necessary if your username or configuration directory differs.

## Usage

`tasg` provides a straightforward CLI interface. Below are the available commands:

### Add a Task

Add a new task with a description:

```sh
tasg add "Your task description"
```

### List Tasks

To list incomplete tasks:

```sh
tasg list
```

To list all tasks, including completed ones:

```sh
tasg list --all
```

### Complete a Task

Mark a task as complete by specifying its ID:

```sh
tasg complete <task_id>
```

### Delete a Task

Remove a task by specifying its ID:

```sh
tasg delete <task_id>
```

### Nuke All Tasks

To delete all tasks (irreversible action), use:

```sh
tasg nuke
```

You will be prompted to confirm this action.

## Invalid Commands

If you enter an invalid command or missing arguments, `tasg` will display an error message to guide you.

## Running Tests

`tasg` includes a comprehensive suite of tests. To run the tests, use:

```sh
cargo test
```

## Example

Here’s a step-by-step example of how to use `tasg`:

```sh
# Add a new task
tasg add "Write README"

# List all incomplete tasks
tasg list

# Complete the task with ID 1
tasg complete 1

# List all tasks, including completed ones
tasg list --all

# Delete the task with ID 1
tasg delete 1

# Verify the task has been deleted
tasg list
```

## Contributing

Contributions are welcome! Please fork the repository, make your changes, and submit a pull request. Ensure all tests pass before submitting your pull request.