feat: add env vars for flags
parent
f083d7e701
commit
bef9698fc1
|
@ -14,7 +14,7 @@ tar = "0.4.38"
|
|||
flate2 = "1.0.26"
|
||||
# Used for backup filenames
|
||||
chrono = "0.4.26"
|
||||
clap = { version = "4.3.1", features = ["derive"] }
|
||||
clap = { version = "4.3.1", features = ["derive", "env"] }
|
||||
|
||||
[profile.release]
|
||||
lto = "fat"
|
||||
|
|
27
src/main.rs
27
src/main.rs
|
@ -17,30 +17,30 @@ struct Cli {
|
|||
jar: PathBuf,
|
||||
|
||||
/// Directory where configs are stored, and where the server will run [default: .]
|
||||
#[arg(long, value_name = "CONFIG_DIR")]
|
||||
#[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")]
|
||||
#[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")]
|
||||
#[arg(long, value_name = "BACKUP_DIR", env = "ALEX_WORLD_DIR")]
|
||||
backup: Option<PathBuf>,
|
||||
/// Java command to run the server jar with
|
||||
#[arg(long, value_name = "JAVA_CMD", default_value_t = String::from("java"))]
|
||||
#[arg(long, value_name = "JAVA_CMD", default_value_t = String::from("java"), env = "ALEX_JAVA")]
|
||||
java: String,
|
||||
|
||||
/// XMS value in megabytes for the server instance
|
||||
#[arg(long, default_value_t = 1024)]
|
||||
#[arg(long, default_value_t = 1024, env = "ALEX_XMS")]
|
||||
xms: u64,
|
||||
/// XMX value in megabytes for the server instance
|
||||
#[arg(long, default_value_t = 2048)]
|
||||
#[arg(long, default_value_t = 2048, env = "ALEX_XMX")]
|
||||
xmx: u64,
|
||||
|
||||
/// How many backups to keep
|
||||
#[arg(short = 'n', long, default_value_t = 7)]
|
||||
#[arg(short = 'n', long, default_value_t = 7, env = "ALEX_MAX_BACKUPS")]
|
||||
max_backups: u64,
|
||||
/// How frequently to perform a backup, in minutes; 0 to disable.
|
||||
#[arg(short = 't', long, default_value_t = 0)]
|
||||
#[arg(short = 't', long, default_value_t = 0, env = "ALEX_FREQUENCY")]
|
||||
frequency: u64,
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,9 @@ fn backups_thread(counter: Arc<Mutex<server::ServerProcess>>, frequency: u64) {
|
|||
|
||||
{
|
||||
let mut server = counter.lock().unwrap();
|
||||
server.backup();
|
||||
|
||||
// We explicitely ignore the error here, as we don't want the thread to fail
|
||||
let _ = server.backup();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,9 +81,14 @@ fn main() {
|
|||
|
||||
loop {
|
||||
input.clear();
|
||||
stdin.read_line(input);
|
||||
|
||||
if stdin.read_line(input).is_err() {
|
||||
continue;
|
||||
};
|
||||
|
||||
{
|
||||
let mut server = counter.lock().unwrap();
|
||||
|
||||
if let Err(e) = server.send_command(input) {
|
||||
println!("{}", e);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue