yet 0.2.1

`yet` (yet-another task executor) is a tool for executing task written using the [rune](https://rune-rs.github.io/) programming language.
yet
===

`yet` (yet-another executor of tasks) is a tool for executing task written using the [rune](https://rune-rs.github.io/) programming language.
It aims at fitting my use-cases and workflow for the [CylonCore](https://cyloncore.com) and [auKsys](https://auksys.org) projects.
But you are very welcome to use it for your own projects, and contribute to the project, through merge requests.

Installation
============

To install `yet`, you need to have Rust and Cargo installed. If you don't have them installed, you can get them from [rustup.rs](https://rustup.rs/).

```bash
cargo install yet
```

Documentation
=============

Command-line usage
------------------

`yet` command line usage is available by running the command:

```bash
yet --help
```

To get started, create a demo configuration file in the current directory:

```bash
yet --create-config
```

The basic usage is to run a task:

```bash
yet taskname arg0 arg1...
```

With the previously created configuration file:

```bash
yet hello world
```

The `taskname` is the identifier for a task as defined in the `yet.yml` file. When executing a task, `yet` automatically searches for `yet.yml` files in the current directory and all parent directories, importing the tasks specified within them.
If a task with the same name is defined in both a parent directory and a subdirectory, the task in the subdirectory will override the one in the parent directory.
To run a task located in a subdirectory, you can specify the path to the task using the command:

```bash
yet path/to/subdir/taskname
```

This allows for flexible task management and execution across different directory levels.

yet.yml
-------

Tasks are defined in a `yet.yml` file. Which contains a root `tasks`, which is a dictionary where the  An example is provided bellow:

```yaml
tasks:
  install:
    description: "Install yet."
    command: !commands
      - cargo install --path .

  test:
    description: "Run tests for yet."
    command: !commands
      - cargo test
      - cd tests
      - ruby test.rb
```

or more detailed information on configuring tasks, refer to the [yet.yml documentation](docs/yet_yml.md).

Rune
----

`Rune` is a scripting language with a syntax very similar to Rust. It is used as the primary scripting engine for `yet`. The documentation for the language can be found here:

* [Rune]https://rune-rs.github.io/book/: introduction to the Rune programming language.
* [Rune Modules]https://rune-rs.github.io/docs/: documentation about the general Rune modules.

Shell Integration
=================

`yet` provides shell completion integration for bash. Add the following line to your `.bashrc` or `.bash_profile` to enable completion:

```bash
eval "$(yet --shell-config bash)"
```