diff --git a/src/server/mod.rs b/src/server/mod.rs index 766dbfa..28d0ddc 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -1,8 +1,11 @@ +use anyhow::anyhow; use clap::Subcommand; mod eula; pub mod lockfile; +use lockfile::Lockfile; + #[derive(Debug, Subcommand)] pub enum Server { /// Initialize a server in the current directory @@ -25,10 +28,18 @@ pub fn action(server: &Server) -> Result<(), anyhow::Error> { Server::Init { minecraft_version, loader, - } => { - lockfile::Lockfile::with_params(minecraft_version, loader)?; - Ok(()) - } + } => init(minecraft_version, loader), Server::Sign => eula::sign(), } } + +fn init(minecraft_version: &str, loader: &str) -> Result<(), anyhow::Error> { + let mut lf = Lockfile::with_params(minecraft_version, loader)?; + if !lf.is_initialized() { + return Err(anyhow!( + "lockfile was initialized with invalid configuration" + )); + } + + Ok(()) +}