diff --git a/.cargo/config.toml b/.cargo/config.toml index 52f99fb..3056b64 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,2 +1,2 @@ [alias] -runs = "run -- paper 1.19.4-545 --config data/config --backup data/backups --world data/worlds data/paper-1.19.4-545.jar" +runs = "run -- paper --config data/config --backup data/backups --world data/worlds --jar data/paper.jar" diff --git a/CHANGELOG.md b/CHANGELOG.md index fa75097..fbc8428 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased](https://git.rustybever.be/Chewing_Bever/alex/src/branch/dev) +### Changed + +* Better env var support + ## [0.1.0](https://git.rustybever.be/Chewing_Bever/alex/src/tag/0.1.0) ### Added diff --git a/src/main.rs b/src/main.rs index 05a6d96..7837887 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,19 +12,41 @@ struct Cli { /// Type of server type_: ServerType, /// Version string for the server, e.g. 1.19.4-545 + #[arg(env = "ALEX_SERVER_VERSION")] server_version: String, - /// Server jar to execute - jar: PathBuf, - /// Directory where configs are stored, and where the server will run [default: .] - #[arg(long, value_name = "CONFIG_DIR", env = "ALEX_CONFIG_DIR")] - config: Option, - /// Directory where world files will be saved [default: ../worlds] - #[arg(long, value_name = "WORLD_DIR", env = "ALEX_WORLD_DIR")] - world: Option, - /// Directory where backups will be stored [default: ../backups] - #[arg(long, value_name = "BACKUP_DIR", env = "ALEX_WORLD_DIR")] - backup: Option, + /// Server jar to execute + #[arg( + long, + value_name = "JAR_PATH", + default_value = "server.jar", + env = "ALEX_JAR" + )] + jar: PathBuf, + /// Directory where configs are stored, and where the server will run + #[arg( + long, + value_name = "CONFIG_DIR", + default_value = ".", + env = "ALEX_CONFIG_DIR" + )] + config: PathBuf, + /// Directory where world files will be saved + #[arg( + long, + value_name = "WORLD_DIR", + default_value = "../worlds", + env = "ALEX_WORLD_DIR" + )] + world: PathBuf, + /// Directory where backups will be stored + #[arg( + long, + value_name = "BACKUP_DIR", + default_value = "../backups", + env = "ALEX_WORLD_DIR" + )] + backup: PathBuf, /// Java command to run the server jar with #[arg(long, value_name = "JAVA_CMD", default_value_t = String::from("java"), env = "ALEX_JAVA")] java: String, @@ -63,9 +85,9 @@ fn main() { let cmd = server::ServerCommand::new(cli.type_, &cli.server_version) .java(&cli.java) .jar(cli.jar) - .config(cli.config.unwrap_or(".".into())) - .world(cli.world.unwrap_or("../worlds".into())) - .backup(cli.backup.unwrap_or("../backups".into())) + .config(cli.config) + .world(cli.world) + .backup(cli.backup) .xms(cli.xms) .xmx(cli.xmx) .max_backups(cli.max_backups);