diff --git a/src/init.rs b/src/init.rs index c527f60..1903fc5 100644 --- a/src/init.rs +++ b/src/init.rs @@ -61,15 +61,16 @@ fn create_package_file(name: String) -> std::io::Result<()> { Ok(()) } -fn create_main_file() -> std::io::Result<()> { +fn create_main_file(lib: bool) -> std::io::Result<()> { + let name = if lib { "lib.yf" } else { "main.yf" }; debug!("Creating main file"); - let mut main_file = File::create("main.yf")?; + let mut main_file = File::create(name)?; let main_contents = create_main_file_contents(); write!(main_file, "{}", main_contents)?; Ok(()) } -fn create_package_contents(name: String) -> std::io::Result<()> { +fn create_package_contents(name: String, lib: bool) -> std::io::Result<()> { create_package_file(name)?; debug!("Creating src/ folder"); @@ -77,11 +78,11 @@ fn create_package_contents(name: String) -> std::io::Result<()> { git_init_package(); env::set_current_dir("./src")?; - create_main_file()?; + create_main_file(lib)?; Ok(()) } -pub fn init(name: Option) -> std::io::Result<()> { +pub fn init(name: Option, lib: bool) -> std::io::Result<()> { let project_name; if name.is_none() { let path = env::current_dir()?; @@ -98,7 +99,7 @@ pub fn init(name: Option) -> std::io::Result<()> { project_name = name.unwrap(); } - match create_package_contents(project_name) { + match create_package_contents(project_name, lib) { Ok(_) => println!("Package created successfully!"), Err(e) => eprintln!("{}", e), }; diff --git a/src/main.rs b/src/main.rs index ff76d3a..d3e203f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -59,6 +59,9 @@ enum Command { /// yfin init #[structopt()] name: Option, + + #[structopt(short, long)] + lib: bool, }, } @@ -75,6 +78,6 @@ fn main() { Command::InstallYflib {} => install_yflib(), Command::Uninstall { package } => uninstall(&package).unwrap(), Command::Upgrade { package } => upgrade(&package).unwrap(), - Command::Init { name } => init(name).unwrap(), + Command::Init { name, lib } => init(name, lib).unwrap(), } }