feat: add env vars for flags
							parent
							
								
									f083d7e701
								
							
						
					
					
						commit
						bef9698fc1
					
				| 
						 | 
					@ -14,7 +14,7 @@ tar = "0.4.38"
 | 
				
			||||||
flate2 = "1.0.26"
 | 
					flate2 = "1.0.26"
 | 
				
			||||||
# Used for backup filenames
 | 
					# Used for backup filenames
 | 
				
			||||||
chrono = "0.4.26"
 | 
					chrono = "0.4.26"
 | 
				
			||||||
clap = { version = "4.3.1", features = ["derive"] }
 | 
					clap = { version = "4.3.1", features = ["derive", "env"] }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[profile.release]
 | 
					[profile.release]
 | 
				
			||||||
lto = "fat"
 | 
					lto = "fat"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								src/main.rs
								
								
								
								
							
							
						
						
									
										27
									
								
								src/main.rs
								
								
								
								
							| 
						 | 
					@ -17,30 +17,30 @@ struct Cli {
 | 
				
			||||||
    jar: PathBuf,
 | 
					    jar: PathBuf,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Directory where configs are stored, and where the server will run [default: .]
 | 
					    /// 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>,
 | 
					    config: Option<PathBuf>,
 | 
				
			||||||
    /// Directory where world files will be saved [default: ../worlds]
 | 
					    /// 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>,
 | 
					    world: Option<PathBuf>,
 | 
				
			||||||
    /// Directory where backups will be stored [default: ../backups]
 | 
					    /// 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>,
 | 
					    backup: Option<PathBuf>,
 | 
				
			||||||
    /// Java command to run the server jar with
 | 
					    /// 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,
 | 
					    java: String,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// XMS value in megabytes for the server instance
 | 
					    /// 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,
 | 
					    xms: u64,
 | 
				
			||||||
    /// XMX value in megabytes for the server instance
 | 
					    /// 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,
 | 
					    xmx: u64,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// How many backups to keep
 | 
					    /// 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,
 | 
					    max_backups: u64,
 | 
				
			||||||
    /// How frequently to perform a backup, in minutes; 0 to disable.
 | 
					    /// 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,
 | 
					    frequency: u64,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,9 @@ fn backups_thread(counter: Arc<Mutex<server::ServerProcess>>, frequency: u64) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            let mut server = counter.lock().unwrap();
 | 
					            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 {
 | 
					    loop {
 | 
				
			||||||
        input.clear();
 | 
					        input.clear();
 | 
				
			||||||
        stdin.read_line(input);
 | 
					
 | 
				
			||||||
 | 
					        if stdin.read_line(input).is_err() {
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            let mut server = counter.lock().unwrap();
 | 
					            let mut server = counter.lock().unwrap();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if let Err(e) = server.send_command(input) {
 | 
					            if let Err(e) = server.send_command(input) {
 | 
				
			||||||
                println!("{}", e);
 | 
					                println!("{}", e);
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue