feat: better env var support
Some checks failed
ci/woodpecker/push/release unknown status
ci/woodpecker/push/lint Pipeline was successful
ci/woodpecker/push/clippy Pipeline was successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Jef Roosens 2023-06-05 11:33:44 +02:00
parent b023516162
commit 5a69234877
Signed by: Jef Roosens
GPG key ID: B75D4F293C7052DB
3 changed files with 41 additions and 15 deletions

View file

@ -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<PathBuf>,
/// Directory where world files will be saved [default: ../worlds]
#[arg(long, value_name = "WORLD_DIR", env = "ALEX_WORLD_DIR")]
world: Option<PathBuf>,
/// Directory where backups will be stored [default: ../backups]
#[arg(long, value_name = "BACKUP_DIR", env = "ALEX_WORLD_DIR")]
backup: Option<PathBuf>,
/// 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);