diff --git a/README.md b/README.md index 2d6837a..a704ec8 100644 --- a/README.md +++ b/README.md @@ -2,19 +2,42 @@ More than a web server that dynamically show the status of a Minecraft server (formerly known as bukkit-server-status) # Goals -- [ ] A cli (using [`clap`](https://crates.io/crates/clap/)) that enables to - - [ ] Start the Minecraft server and give control over its terminal (using [`screen`](https://www.gnu.org/software/screen/)) - - [ ] Start and control the webserver - - [ ] Turn on/off remote starting of the Minecraft server -- [ ] A webserver that show the current status of the Minecraft server (using [`actix-web`](https://crates.io/crates/actix-web/), [`tokio`](https://crates.io/crates/tokio/), and [`async-minecraft-ping`](https://crates.io/crates/async-minecraft-ping/)) - - [ ] Server online - - [ ] Players online - - [ ] MOTD - - [ ] Start the Minecraft server if offline -- [ ] Config loading (using [`toml`](https://crates.io/crates/toml/)) +- [x] A daemon/service (`sfsmcd`/`sfsmc`) that can be controlled via [DBus](https://www.freedesktop.org/wiki/Software/dbus/) + - [x] systemd integration + - [x] DBus integration + - [x] A Minecraft server (starting, eventually stopping) _(needs testing)_ + - [ ] A web server for the status page + - [ ] Online status + - [ ] Players + - [ ] MOTD + - [ ] Start the Minecraft server if it is offline + - [ ] Web server extensions (via dynamic libraries) _(just maaaayyybeee)_ +- [x] A CLI (`sfsmcctl`) that enables to + - [x] Start the daemon/service + - [x] Stop the daemon/service + - [x] Start the Minecraft server _(needs testing)_ + - [ ] Give control over the Minecraft server terminal + - [ ] Stop the Minecraft server + - [ ] Start the web server + - [ ] Stop the web server +- [ ] Config loading - [ ] Config profiles -- [ ] Running in the background (using [`screen`](https://www.gnu.org/software/screen/)) -# Decisions made along the way -## 4th August 2020 -For the server and "client" to be able to communicate with eachother, I'll be using [DBus](https://www.freedesktop.org/wiki/Software/dbus/) and the [`dbus`-crate](https://crates.io/crates/dbus/). Also, it will probably be better to split the server and client/daemon and control utility in two separate projects (using Cargo's [workspaces](https://doc.rust-lang.org/cargo/reference/workspaces.html)). \ No newline at end of file +# Dependencies +## Non-Rust dependencies +- [systemd](https://systemd.io/) +- [DBus](https://www.freedesktop.org/wiki/Software/dbus/) +- Any Minecraft server e.g. [Spigot](https://www.spigotmc.org/) +- [screen](https://www.gnu.org/software/screen/) + +## Crates +- [clap](https://crates.io/crates/clap/) v2.33 +- [tokio](https://crates.io/crates/tokio/) v0.2 (although v0.3 is out already) +- [dbus](https://crates.io/crates/dbus/) v0.9 +- [dbus-tokio](https://crates.io/crates/dbus-tokio/) v0.6 +- [dbus-tree](https://crates.io/crates/dbus-tree/) v0.9 +- [log](https://crates.io/crates/log/) v0.4 +- [env_logger](https://crates.io/crates/env_logger/) v0.8 +- [async-minecraft-ping](https://crates.io/crates/async-minecraft-ping/) +- [toml](https://crates.io/crates/toml/) +- [actix-web](https://crates.io/crates/actix-web/) \ No newline at end of file