melatonin 0.9.1

A version manager for the BYOND environment
Documentation
# 💊 Melatonin - BYOND version manager

[![][badge-status-test]](https://github.com/atakiya/melatonin/actions)
[![][badge-crates-version]](https://crates.io/crates/melatonin)
[![][badge-crates-license]](./LICENSE.md)

A version manager for the [Build Your Own Net Dream (BYOND)](https://www.byond.com/) software.

Contributions and improvements are very welcome, as this is my first Rust-based project.

## Installation

build from source via

```
cargo install melatonin
```

or, with [cargo binstall](https://github.com/cargo-bins/cargo-binstall)

```
cargo binstall melatonin
```

## Usage

To quickly get started from scratch:

1. `bvm setup` to setup the shims and PATH
2. `bvm install latest`
3. `cd your/byondproject/path/here`
4. `bvm pin latest`

And done!  
Now simply invoke your tools as usual, such as

-   `dm project.dme` - run the CLI compiler against your environment
-   `dd project.dmb` - run the CLI server against your built binary (BYOND 515+)
-   `dreammaker project.dme` - run the GUI editor/compiler

For the currently installed versions, run `bvm list`

For all commands and help, simply run `bvm --help`

### Container Image

Container images are released along with semver tags  
Images are tagged as (example semver `v1.2.3`)

-   `v1.2.3` - full version
-   `v1.2` - major and minor
-   `v1` - major
-   `latest`

Example `Dockerfile` for a BYOND project previously pinned with melatonin:

```Dockerfile
FROM ghcr.io/atakiya/melatonin

WORKDIR /app

# Assuming you're building from your project's root
COPY . .

# Setup shims and install the in the project pinned version of BYOND
RUN bvm setup \
	bvm install $(cat .byondversion)\

# Compile the project
RUN DreamMaker -verbose *.dme

# And run a dedicated server!
ENTRYPOINT [ "DreamDaemon" ]
CMD [ "*.dmb", "5513", "-invisible", "-trusted" ]
```

## License

[![GNU General Public License v3 or later](https://www.gnu.org/graphics/gplv3-127x51.png)](https://www.gnu.org/licenses/gpl-3.0.html)
See [LICENSE.md](./LICENSE.md) for more information.

## Copyright notice

Copyright ©️ 2024 Avunia Takiya - All Rights Reserved  
Build Your Own Net Dream is Copyright ©️ BYOND Software

[badge-status-test]: https://img.shields.io/github/actions/workflow/status/atakiya/melatonin/test.yaml?label=tests "CI/CD tests status"
[badge-crates-version]: https://img.shields.io/crates/v/melatonin "Crates.io Version"
[badge-crates-license]: https://img.shields.io/crates/l/melatonin "Crates.io License"